main() { //avm_test_main(); yzlkb_main(); return 0; } int lkb_load_grammar(char *path) { printf("(should load grammar %s)\n", path); return 0; } int run_lisp_command(char *command) { return 0; } char *rule_avm = "#D(head-initial HEAD: <0>= #D(pos MOD: *LIST*) SPR: <1>= *LIST* COMPS: <2>= *LIST* ARGS: #D(*cons* FIRST: #D(sign HEAD: <0> SPR: <1> COMPS: #D(*cons* FIRST: <3>= *TOP* REST: <2>) ARGS: *LIST*) REST: #D(*cons* FIRST: <3> REST: *NULL*)))"; char *dog_fs_string = "#D(phrase HEAD: <0>= #D(verb AGR: PERNUM MOD: *NULL*) SPR: *NULL* COMPS: <1>= *NULL* ARGS: #D(*ne-list* FIRST: <2>= #D(phrase HEAD: <3>= #D(noun AGR: NON-3SING MOD: *NULL*) SPR: *NULL* COMPS: <4>= *NULL* ARGS: #D(*ne-list* FIRST: <5>= #D(phrase HEAD: <6>= #D(det AGR: NON-3SING MOD: *NULL*) SPR: <7>= *NULL* COMPS: *NULL* ARGS: #D(*ne-list* FIRST: #D(word HEAD: <6> SPR: <7> COMPS: *NULL* ORTH: the) REST: *NULL*)) REST: #D(*ne-list* FIRST: #D(phrase HEAD: <3> SPR: <8>= #D(*ne-list* FIRST: <5> REST: *NULL*) COMPS: <4> ARGS: #D(*ne-list* FIRST: #D(phrase HEAD: <9>= #D(adj AGR: PERNUM MOD: #D(*ne-list* FIRST: <10>= #D(nucleus-phrase HEAD: <3> SPR: <8> COMPS: <4> ARGS: #D(*ne-list* FIRST: #D(word HEAD: <3> SPR: <8> COMPS: *NULL* ORTH: dogs) REST: *NULL*)) REST: *NULL*)) SPR: <11>= *NULL* COMPS: *NULL* ARGS: #D(*ne-list* FIRST: #D(word HEAD: <9> SPR: <11> COMPS: *NULL* ORTH: fierce) REST: *NULL*)) REST: #D(*ne-list* FIRST: <10> REST: *NULL*))) REST: *NULL*))) REST: #D(*ne-list* FIRST: #D(xtended-phrase HEAD: <0> SPR: <12>= #D(*ne-list* FIRST: <2> REST: *NULL*) COMPS: <1> ARGS: #D(*ne-list* FIRST: <13>= #D(phrase HEAD: <0> SPR: <12> COMPS: <1> ARGS: #D(*ne-list* FIRST: #D(word HEAD: <0> SPR: <12> COMPS: *NULL* ORTH: bark) REST: *NULL*)) REST: #D(*ne-list* FIRST: #D(phrase HEAD: <14>= #D(adv AGR: PERNUM MOD: #D(*ne-list* FIRST: <13> REST: *NULL*)) SPR: <15>= *NULL* COMPS: *NULL* ARGS: #D(*ne-list* FIRST: #D(word HEAD: <14> SPR: <15> COMPS: *NULL* ORTH: happily) REST: *NULL*)) REST: *NULL*))) REST: *NULL*)))"; avm_test_main() { yzlkb_show_avm(rule_avm); }