|
|
|
@ -39,6 +39,7 @@ Field access |
|
|
|
int main() { |
|
|
|
s.data1; |
|
|
|
p->data2; |
|
|
|
q[data3]; |
|
|
|
} |
|
|
|
|
|
|
|
--- |
|
|
|
@ -46,7 +47,8 @@ int main() { |
|
|
|
(function_declaration (identifier) (identifier) (formal_parameters) |
|
|
|
(statement_block |
|
|
|
(expression_statement (field_access (identifier) (identifier))) |
|
|
|
(expression_statement (deref_field_access (identifier) (identifier))))) |
|
|
|
(expression_statement (deref_field_access (identifier) (identifier))) |
|
|
|
(expression_statement (subscript_access (identifier) (identifier))))) |
|
|
|
|
|
|
|
============================================ |
|
|
|
Boolean operators |
|
|
|
@ -102,6 +104,7 @@ int main() { |
|
|
|
b = *c = 2; |
|
|
|
d.e = 3; |
|
|
|
f->g = 4; |
|
|
|
h[i] = j; |
|
|
|
} |
|
|
|
|
|
|
|
--- |
|
|
|
@ -111,7 +114,8 @@ int main() { |
|
|
|
(var_declaration (storage_class) (identifier) (var_assignment (identifier) (number))) |
|
|
|
(expression_statement (assignment (identifier) (assignment (deref (identifier)) (number)))) |
|
|
|
(expression_statement (assignment (field_access (identifier) (identifier)) (number))) |
|
|
|
(expression_statement (assignment (deref_field_access (identifier) (identifier)) (number))))) |
|
|
|
(expression_statement (assignment (deref_field_access (identifier) (identifier)) (number))) |
|
|
|
(expression_statement (assignment (subscript_access (identifier) (identifier)) (identifier))))) |
|
|
|
|
|
|
|
============================================ |
|
|
|
Pointer operations |
|
|
|
|