Thanks! You're right. I'm finding it hard to go from the
productions to code when the productions are recursive through
intermediates.
Interesting:
function-access1 = record-function1.field1 => using
function-access|record-function
record-function1 = function-access2 => using
record-function production
function-access2 = record-function2.field2 => using
function-access|record-function
record-function2 = x( a ) => using
function-access|entire-function
function-access2 = x( a ).field2 => reducing
function-access2
record-function1 = x( a ).field2 => reducing
record-function1
function-access1 = x( a ).field2.field1 => reducing
function-access1
x( a ).field2 compiles and executes
x( a ).field2.field1 of course does not compile unless field1 is a
field of field2.
But is it a syntacticly correct result of these productions?
If so is it an ambiguity in the grammar? Do the productions have
precedence rules?
e.g. variable-access has higher precedence than function-access