Token ===== num [0-9]+ var [a-z] sym [+-*=,:()] keyword { PRINT, INPUT, LET, FOR, TO, NEXT, END } special { REM, EOL, EOF } Statement ========= print PRINT expr [',' expr]* input INPUT var let LET var '=' expr for FOR var '=' expr TO expr next NEXT [var] Expr ==== expr term ['+'|'-' term]* term factor ['*' factor]* factor num factor var factor '(' expr ')' Program ======= line stmt [':' stmt]* EOL line EOL program line* EOF Not Supported ============= IF...THEN...ELSE WHILE...WEND GOSUB...RETURN GOTO DIM/DATA/READ Float String Functions Commands (NEW/RUN/LIST) Device (File / Screen / Sound...) Machine Language