Keywords and operators Token Name ------------------------------------------ and T_AND const T_CONST commentoutcode T_COMMENT_OUT_CODE else T_ELSE quit T_QUIT false T_FALSE for T_FOR forcollect T_FOR_COLLECT if T_IF include T_INCLUDE not T_NOT or T_OR procedure T_PROCEDURE return T_RETURN seq T_SEQ seqcollect T_SEQ_COLLECT set T_SET true T_TRUE unset T_UNSET while T_WHILE != T_NE ! T_NOT && T_AND ** T_EXPONENT ++ T_INCR -- T_DECR <= T_LE == T_EQ >= T_GE || T_OR ; T_SEMI_COLON $; T_INTERP_LINE_QUIET : T_LABEL :: T_UP_LABEL << T_BLOCK_BEGIN >> T_BLOCK_ENDThese will subsequently be referred to by their token names.
Type Specification Token Name -------------------------------------------------- real ([0-9]*"."[0-9]+)| T_FLOAT ([0-9]+"."[0-9]*)| ([0-9]*"."[0-9]+[eE][+-]?[0-9]+)| ([0-9]+"."[0-9]*[eE][+-]?[0-9]+) integer [0-9]+ T_INTEGER identifier [a-zA-Z_][a-zA-Z_0-9]* T_IDENTIFIER string \"[^"]*\" T_STRINGThese will also be subsequently referred to by their token names.
construct: construct-option1 | construct-option2 | ...Literal characters (punctuation) are enclosed in single quotes (e.g.: ',').
form: statement | EOS EOS: T_SEMI_COLON | T_INTERP_LINE_QUIET statement: val_stmt | labeled_stmt | define_stmt | scl_sys_stmt EOS | include_stmt EOS | T_BLOCK_BEGIN stmt_list T_BLOCK_END stmt_list: statement | stmt_list statement scl_sys_stmt: T_SET T_IDENTIFIER expr | T_UNSET T_IDENTIFIER | T_QUIT val_stmt: expr EOS | control_stmt | comment_out_stmt labeled_stmt: T_IDENTIFIER T_LABEL val_stmt comment_out_stmt: T_COMMENT_OUT_CODE statement val_stmt_list: val_stmt | labeled_stmt | val_stmt_list val_stmt | val_stmt_list labeled_stmt control_stmt: '{' val_stmt_list '}' | T_SEQ '{' val_stmt_list '}' | T_SEQ_COLLECT '{' val_stmt_list '}' | T_WHILE '(' expr ')' val_stmt | T_IF '(' expr ')' val_stmt T_ELSE val_stmt | T_FOR '(' T_IDENTIFIER EOS expr EOS expr EOS expr ')' val_stmt | T_FOR_COLLECT '(' T_IDENTIFIER EOS expr EOS expr EOS expr ')' val_stmt | T_RETURN expr EOS define_stmt: T_PROCEDURE T_IDENTIFIER '(' arg_list ')' val_stmt | T_PROCEDURE T_IDENTIFIER '(' ')' val_stmt include_stmt: T_INCLUDE T_STRING arg_list: arg | arg_list ',' arg arg: T_IDENTIFIER expr: object | T_INTEGER | T_FLOAT | T_STRING | T_TRUE | T_FALSE | T_IDENTIFIER '(' expr_list ')' | T_IDENTIFIER '(' ')' | '+' expr | '-' expr | expr '+' expr | expr '-' expr | expr '*' expr | expr '/' expr | expr '%' expr | expr T_EXPONENT expr | expr T_EQ expr | expr T_NE expr | expr '<' expr | expr '>' expr | expr T_GE expr | expr T_LE expr | expr T_AND expr | expr T_OR expr | '(' expr ')' expr_list: expr | expr_list ',' expr object: T_IDENTIFIER | object access_list access: '.' T_IDENTIFIER | '[' expr ']' access_list: access | access_list access
origin : pt( 0, 0 ); # This is a comment.
Here is a specific list of language constructs that are not supported in the current interpreter:
not while for return ! ++ -- ::