Building Parsers With Javaв„ў


 
Building Parsers with Java

By Steven  John  Metsker

Table of Contents
Chapter  16.   Parsing an Imperative Language

    Content

A Sling program is a series of statements:

statements = statement statement*;

These statements may be either assignment statements, for statements, or plot statements:

statement = assignment forStatement plotStatement; assignment = variable '=' expression ';' ; plotStatement = "plot" expression ';'; forStatement = "for" '(' variable ',' expression ',' expression ')' '{' statements '}';

A variable is any unreserved word; the reserved words in Sling are the elements shown in Figure 16.12.

variable = Word;

Expressions in Sling allow for normal arithmetic manipulation:

expression = term (plusTerm minusTerm)*; plusTerm = '+' term; minusTerm = '-' term; term = element (timesElement divideElement remainderElement)*; timesElement = '*' element; divideElement = '/' element; remainderElement = '%' element; element = '(' expression ')' baseElement negative; negative = '-' baseElement;

The base elements of Sling are those in Figure 16.12 plus numbers and variables :

baseElement = Num "pi" "s1" "s2" variable noArgs("random") noArgs("t") oneArg("abs") oneArg("ceil") oneArg("cos") oneArg("floor") oneArg("sin") oneArg("tan") twoArgs("polar") twoArgs("cartesian") twoArgs("scale") twoArgs("sling"); noArgs(i) = i; oneArg(i) = i '(' expression ')'; twoArgs(i) = i '(' expression ',' expression ')';


   
Top

Категории