User:Ans/lex and yac vm
From Wikiversity
< User:Ans
- glade
- save UI in xml
- can convert xml to C code
- ui.xml --> ui.c
- callback.c + ui.c --> final application
- has libglade that can load and run the xml on-the-fly, by not generating C code.
- callback.c + libglade.so + ui.xml --> final application
- no need to recompile ui.c, when ui.xml has been changed
- libglade may be regarded as something like VM (virtual machine)
- lex/yacc
- write code in lex/yacc syntax
- can generate C code
- why not implement liblex/libyacc (lex/yacc VM) that can run on-the-fly, without generating C code?
- lex-parser.lex/yacc-parser.yacc --> lex-parser.xml/yacc-parser.xml
- the xml file is something describing the state machine
- the real benefit is the precompiled form?
- need to change the callback without regenerate the state machine from the grammar rule, but the change should only be done in the rule source
- yacc-parser.yacc --> yacc-parser-skeleton.yacc + callback.c
- not overwrite and recompile yacc-parser-skeleton.yacc, if it unchanged
- yacc-parser.yacc --> yacc-parser-skeleton.c + callback.c ?
- this will regenerate the state machine before it has chance to cmp
- callback.c + liblex.so/libyacc.so + lex-parser.xml/yacc-parser.xml --> parser application
- lex-parser.lex/yacc-parser.yacc --> lex-parser.xml/yacc-parser.xml