John Gietzen

Results 98 comments of John Gietzen
trafficstars

Sorry, I read too quickly. I'll take this as a feature request to support multiple files in the Workbench.

Can you please include an example grammar?

I'm afraid it still isn't clear to me the situations in which this would pose an issue, and this example doesn't really provide me with enough context. Internally, the parser...

Typically, I recommend using lowercase rule names and uppercase method names.

I would like to support C# keywords for rule names as well, so since I need to prefix them with "@", I might as well fix this at the same...

Possible syntax option: ``` parensAround@T = '(' t:T ')' { t } parenthticalName = parensAround@name name = [a-z]i [a-z0-9]i* ``` Need to figure out type constraints.

This _must_ be legal: ``` start = c a@T = T b@T = T c = a@b@someOtherRule ``` (using the above syntax) Also, it _must_ be equivalent to `start =...

since `a@b@T1,T2` would be ambiguous between `a@(b@(T1, T2))` and `a@(b@(T1),T2)`, the bare `@` syntax is insufficient.

Some possible syntax options: 1. `a = b` (used by types and repetition) 2. `a(@T1, T2) = b(@T1,T2)` (used by expressions) 3. `a[@T1, T2] = b[@T1,T2]` (used by classes) 4....

The syntax will need to be able to express these: ``` delegate ParseResult Parser(ref Cursor cursor); private ParseResult range(ref Cursor cursor, Parser _pT) where T : IComparable { ... }...