| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |
| <!-- Content Stylesheet for Site --> | |
| <!-- start the processing --> | |
| <!-- ====================================================================== --> | |
| <!-- Main Page Section --> | |
| <!-- ====================================================================== --> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> | |
| <meta name="author" value="Velocity Documentation Team"> | |
| <meta name="email" value="jon@latchkey.com"> | |
| <title>Velocity - Velocity Specification - AST</title> | |
| </head> | |
| <body bgcolor="#ffffff" text="#000000" link="#525D76"> | |
| <table border="0" width="100%" cellspacing="0"> | |
| <!-- TOP IMAGE --> | |
| <tr> | |
| <td align="left"> | |
| <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a> | |
| </td> | |
| <td align="right"> | |
| <a href="http://jakarta.apache.org/velocity/"><img src="./images/logo.gif" alt="Velocity" border="0"/></a> | |
| </td> | |
| </tr> | |
| </table> | |
| <table border="0" width="100%" cellspacing="4"> | |
| <tr><td colspan="2"> | |
| <hr noshade="" size="1"/> | |
| </td></tr> | |
| <tr> | |
| <!-- LEFT SIDE NAVIGATION --> | |
| <td width="20%" valign="top" nowrap="true"> | |
| <p><strong>About</strong></p> | |
| <ul> | |
| <li> <a href="./index.html">Overview</a> | |
| </li> | |
| <li> <a href="./getting-started.html">Getting Started</a> | |
| </li> | |
| <li> <a href="http://jakarta.apache.org/builds/jakarta-velocity/">Download</a> | |
| </li> | |
| <li> <a href="./install.html">Install</a> | |
| </li> | |
| <li> <a href="./design.html">Design</a> | |
| </li> | |
| <li> <a href="./contributors.html">Contributors</a> | |
| </li> | |
| <li> <a href="./changes.html">ChangeLog</a> | |
| </li> | |
| <li> <a href="./code-standards.html">Coding Standards</a> | |
| </li> | |
| <li> <a href="./license.html">License</a> | |
| </li> | |
| <li> <a href="./todo.html">TODO</a> | |
| </li> | |
| <li> <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Velocity">Report Issues</a> | |
| </li> | |
| </ul> | |
| <p><strong>Community</strong></p> | |
| <ul> | |
| <li> <a href="./powered.html">Powered By Velocity</a> | |
| </li> | |
| <li> <a href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a> | |
| </li> | |
| <li> <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a> | |
| </li> | |
| <li> <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a> | |
| </li> | |
| </ul> | |
| <p><strong>Docs</strong></p> | |
| <ul> | |
| <li> <a href="./user-guide.html">User's Guide</a> | |
| </li> | |
| <li> <a href="./developer-guide.html">Developer's Guide</a> | |
| </li> | |
| <li> <a href="./vtl-reference-guide.html">VTL Reference Guide</a> | |
| </li> | |
| <li> <a href="./specification.html">Specification</a> | |
| </li> | |
| <li> <a href="./api/index.html">Javadoc</a> | |
| </li> | |
| </ul> | |
| <p><strong>Comparisons</strong></p> | |
| <ul> | |
| <li> <a href="./ymtd/ymtd.html">YMTD</a> | |
| </li> | |
| <li> <a href="./differences.html">VM/WM Differences</a> | |
| </li> | |
| <li> <a href="./casestudy1.html">Case Study 1</a> | |
| </li> | |
| </ul> | |
| <p><strong>Tools</strong></p> | |
| <ul> | |
| <li> <a href="./anakia.html">Anakia</a> | |
| </li> | |
| <li> <a href="./texen.html">Texen</a> | |
| </li> | |
| <li> <a href="./migration.html">Migration to Velocity</a> | |
| </li> | |
| <li> <a href="./devtools.html">Editors and IDEs</a> | |
| </li> | |
| <li> <a href="./veltag.html">IT Manager wants JSP?</a> | |
| </li> | |
| </ul> | |
| </td> | |
| <td width="80%" align="left" valign="top"> | |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> | |
| <tr><td bgcolor="#525D76"> | |
| <font color="#ffffff" face="arial,helvetica,sanserif"> | |
| <a name="Velocity Specification - AST"><strong>Velocity Specification - AST</strong></a> | |
| </font> | |
| </td></tr> | |
| <tr><td> | |
| <blockquote> | |
| <p> | |
| Please note that this is currently out of date and will be updated soon. | |
| </p> | |
| <div align="left"> | |
| <table cellspacing="4" cellpadding="0" border="0"> | |
| <tr> | |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| </tr> | |
| <tr> | |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| <td bgcolor="#ffffff"><pre> | |
| This is tentatively the AST structure for Velocity. | |
| The structure is as would be described using ANTLR | |
| BNF-style notation. A tree is described by | |
| #(node node node) where #() represents the tree form. | |
| The first node is the root of the tree, and following | |
| nodes are all children. | |
| Visually, #(A B C D E) might look like: | |
| A | |
| | | |
| B-C-D-E | |
| Root nodes must always be a terminal node, denoted by | |
| an all-caps identifier. | |
| Non-root nodes may be either terminal nodes, or sub-rules, | |
| or inlined sub-trees. | |
| A sub-rule might describe a tree, or simple a node. | |
| block | |
| : | |
| #( BLOCK | |
| (statement)* | |
| ) | |
| ; | |
| statement | |
| : | |
| text | |
| | if_statement | |
| | foreach_statement | |
| | include_statement | |
| | set_statement | |
| | parse_statement | |
| | param_statement | |
| | stop_statement | |
| | reference | |
| ; | |
| text | |
| : | |
| TEXT | |
| ; | |
| // if/elseif/else chains should be represented solely | |
| // by <if_statement>. <elseif> is simply an <if_statement> | |
| // in the false-branch of the preceeding <if_statement> | |
| // while <else> is simply an <if_statement> where the | |
| // <expr> evaluates to TRUE always, and no false-branch | |
| // is provided. | |
| if_statement | |
| : | |
| #( IF | |
| // The expression to test | |
| expr | |
| // True branch | |
| block | |
| // False branch | |
| ( block )? | |
| ) | |
| ; | |
| foreach_statement | |
| : | |
| #( FOREACH | |
| // Value to assign for each iteration | |
| reference | |
| // List of objects to iterator | |
| reference | |
| // command-block to execute | |
| ( block )? | |
| ) | |
| ; | |
| set_statement | |
| : | |
| #( SET | |
| // Variable to set | |
| reference | |
| // Value to assign | |
| expr | |
| ; | |
| parse_statement | |
| : | |
| #( PARSE | |
| STRING_LITERAL | |
| ) | |
| ; | |
| include_statement | |
| : | |
| #( INCLUDE | |
| STRING_LITERAL | |
| ) | |
| ; | |
| stop_statement | |
| : | |
| STOP | |
| ; | |
| reference | |
| : | |
| #( REFERENCE | |
| postfix | |
| ; | |
| postfix | |
| : | |
| method_call | |
| | | |
| member | |
| | | |
| identifier | |
| ; | |
| member | |
| : | |
| #( DOT | |
| identifier | |
| ( primary | |
| | method_call | |
| ) | |
| ; | |
| primary | |
| : | |
| IDENTIFIER | |
| ; | |
| method_call | |
| #( CALL | |
| postfix | |
| // The argument list | |
| ( expr ) * | |
| ) | |
| ; | |
| </pre></td> | |
| <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| </tr> | |
| <tr> | |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td> | |
| </tr> | |
| </table> | |
| </div> | |
| </blockquote> | |
| </p> | |
| </td></tr> | |
| <tr><td><br/></td></tr> | |
| </table> | |
| </td> | |
| </tr> | |
| <!-- FOOTER --> | |
| <tr><td colspan="2"> | |
| <hr noshade="" size="1"/> | |
| </td></tr> | |
| <tr><td colspan="2"> | |
| <div align="center"><font color="#525D76" size="-1"><em> | |
| Copyright © 1999-2001, Apache Software Foundation | |
| </em></font></div> | |
| </td></tr> | |
| </table> | |
| </body> | |
| </html> | |
| <!-- end the processing --> | |