nitpick, but: > body returns [Object v] : i_expr > (same body1=body {$v = cons($i_expr.v, $body1.v);} > | dedent {$v = list($i_expr.v);} ) ;
The "i_expr" there looks like it's hiding, so I suggest the maybe-clearer: > body returns [Object v] : > i_expr > (same body1=body {$v = cons($i_expr.v, $body1.v);} > | dedent {$v = list($i_expr.v);} ) ; (if ANTLR allows it, anyway) Sincerely, AmkG On 1/11/13, David A. Wheeler <dwhee...@dwheeler.com> wrote: > For completeness, here's the current (and trivial) "body" production. > Comments welcome, though I can't imagine what they'd be. > > This production collects child lines of a parent line until it sees the > concluding dedent. It's only triggered when there are child lines at all > (i_expr doesn't call body unless there's an "indent"). Practically all the > real work is done by its recursing back to i_expr. > > The "same" non-terminal doesn't really do anything, it's just a reminder > that each child has to have the same indentation (which must, by definition, > be longer than its parents'). > > --- David A. Wheeler > > > ================================================ > > // "body" handles the sequence of 1+ child lines in an i_expr > // (e.g., after a "head"), each of which is itself an i_expr. > // It returns the list of expressions in the body. > // Note that an i-expr will consume any line comments or hspaces > // before it returns back to the "body" production. > // Non-tokenizing implementation notes: > // Note that i_expr will consume any line comments (line comments after > // content, as well as lines that just contain indents and comments). > // Note also that i-expr may set the the current indent to a different > value > // than the indent used on entry to body; the latest indent is compared by > // the special terminals DEDENT and BADDENT. > > body returns [Object v] : i_expr > (same body1=body {$v = cons($i_expr.v, $body1.v);} > | dedent {$v = list($i_expr.v);} ) ; > > > ------------------------------------------------------------------------------ > Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and > much more. Get web development skills now with LearnDevNow - > 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. > SALE $99.99 this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122812 > _______________________________________________ > Readable-discuss mailing list > Readable-discuss@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/readable-discuss > ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122412 _______________________________________________ Readable-discuss mailing list Readable-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/readable-discuss