,"First and Follow Symbols", Element,First,Follow program,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function","(empty - can only have one program in a file)" simpleelement,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function","$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" statement,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while","$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" assignstatement,"$ @","$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" breakstatement,break,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" callstatement,&,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" closestatement,close,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" foreachstatement,foreach,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" forstatement,for,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" ifstatement,if,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" openstatement,open,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" popstatement,pop,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" predecstatement,--,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" preincstatement,++,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" printstatement,print,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" pushstatement,push,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" readstatement,read,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" repeatstatement,repeat,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" shiftstatement,shift,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" whilestatement,while,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" simpleassign,=,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" addassign,+=,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" divassign,/=,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" multassign,*=,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" postdec,--,"$ @" postinc,++,"$ @" subassign,-=,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" vardec,new,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" varname,"$ @","= += -= *= /= -- ++ ; * / % + - < > == <= >= != && || ) . ] ," scalardec,$,; scalarname,$,"= += -= *= /= -- ++ ( ; * / % + - < > == <= >= != && || ) . ] ," arraydec,@,; arrayname,@,"= += -= *= /= -- ++ ; * / % + - < > == <= >= != && || ) . ] ," functiondef,function,"$ @ & -- ++ break close foreach for if open pop print push shift read repeat while new function" funcname,&,"( { * / % + - < > == <= >= != && || ; ) . ] ," filehandle,^,"; ) . ] ," expr,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !","; ) . ] ," exprarray,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !",) boolexpr,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !","&& || ; ) . ] ," boolop,"&& ||","true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" relexpr,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !","< > == <= >= != && || ; ) . ] ," relop,"< > == <= >= !=","true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" term,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !","+ - < > == <= >= != && || ; ) . ] ," addop,"+ -","true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" factor,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !","* / % + - < > == <= >= != && || ; ) . ] ," multop,"* / %","true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !" negate,!,"* / % + - < > == <= >= != && || ; ) . ] ," constant,"true false 0 1 2 3 4 5 6 7 8 9 ' ""","* / % + - < > == <= >= != && || ; ) . ] ," boolconstant,"true false","* / % + - < > == <= >= != && || ; ) . ] ," numconstant,"0 1 2 3 4 5 6 7 8 9","* / % + - < > == <= >= != && || ; ) . ] ," stringconstant,"' ""","* / % + - < > == <= >= != && || ; ) . ] ," concat,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !",; plainstring,',"* / % + - < > == <= >= != && || ; ) . ] ," escapestring,"""","* / % + - < > == <= >= != && || ; ) . ] ," list,"true false 0 1 2 3 4 5 6 7 8 9 ' "" $ @ & ( !","; )"