Checking operations on array types
An array is a sequence of elements that are all of the same type. Up to this point, the Jzero language hasn't really supported array types, other than to allow enough syntax for main()
to declare its array of the String
parameter. Now, it is time to add support for the remainder of the Jzero array operations, which are a small subset of what Java arrays can do. Jzero arrays are limited to single-dimension arrays created without initializers. In order to check array operations properly, we will modify the code from the previous chapters so that we can recognize array variables when they are declared, and then check all uses on these arrays to only allow legal operations. Let's begin with array variable declarations.
Handling array variable declarations
The idea that a variable will hold a reference to an array is attached to the variable's type in the recursive grammar rule, in j0gram.y
, for the non-terminal VarDeclarator
. The...