On Thu, Apr 30, 2009 at 10:16 AM, R. Bastian
On Thu, 30 Apr 2009 09:48:40 +0200 luigi scarso
scribit: R. Bastian:
CONTEXT_SOURCE ::= PREAMBLE "\starttext" TEXT "\stoptext" | CONTEXT_SOURCE
TEXT ::= STARTSTOPS | SETUPS | DEFINES | OTHERS [ TEXT
luigi:
To be general, i think
MY_CONTEXT_SOURCE ::= MACRO* END
R. Bastian:
I dont understand the sense of "\end\starttext"
sense==semantic
"\end""\starttext" is a valid string for a hypothetical bnf grammar of ContTeXt which is not valid for your bnf ; "\end""\starttext""\stoptext" is in your bnf grammar and has the same semantic of "\end""\starttext" .
The point is : a bnf for Context can be hard to define
luigi:
think that a bnf or lpeg grammar is really useful for a sort of
standard-ConTeXt or minimal-ConTeXt or light-ConTeXt ie a ConTeXt to use as "reference"
R. Bastian:
Exactly what I need : standard, minimal and light
Exactly what can be hard to define and capture in a bnf .
wolfgang
How could a BNF grammar help to learn ConTeXt,
a bnf can help to build a syntax checker, a highlighter etc. Actually the only way to say that you have a valid ConTeXt string is running context on that string .
The semantic is another story.
OK - but isn't it not worth to try it ?
sure, and I encourage you to go on and possibly write something x next eurotex. My suggestions to start : 1) define a **simple but significative** domain ,ie "this grammar is for subset of ConTeXt language dedicated to variable-data pdf forms" 2) make a bnf grammar spec 3) build a parser lex/yacc for 2) 4) make a lpeg grammar 5) user lpeg inside context for 3) PS it was just a coincidence , but for other reasons I have found this link http://martinfowler.com/dslwip/ -- luigi