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 ')'; |