sliccompiler [debugging flags] < inputfile [> outputfile] - Debugging - different debugging modes can be turned on using flags: -f : flex debugging - prints out the flex tokens -v : variable/symbol table debugging - print out the symbol table (after successful parsing) -a : abstract syntax tree debugging - print out the abstract syntax tree (after successful parsing) -l : line number (code generation) debugging - prints out the GSTAL line numbers -s : statement (code generation) debugging - uses blank lines to group GSTAL code by the SLIC statement it came from multiple flags can be set at the same time, and order does not matter they can also be squished together (ex. -fvl instead of -f -v -l) - Notes - Loop conditions (while and counting) are re-evaluated every time Unary plus is supported (the compiler just disregards the plus sign when parsing) Since there is no explicit casting, if there is a type mismatch, the compiler always assumes that the values should be coerced to the same type rather than throwing an error. When a data mismatch occurs in an expression, both values are converted to float values. When a data mismatch occurs in any case where the result of an expression is required to be of a certian type (ex. assigning the result of an expression to a variable, or using the result of an expression as an array index), then the expression result is coverted the the data type that it is required to be. However, the iteration variable of a counting loop must be an integer (scalar or an element of an integer array), but the starting and ending expressions of a counting loop are allowed to be floats