number_token     = r'(\d+|\d+\.\d*|\d*\.\d+)'
identifier_token = r'[a-zA-Z_][a-zA-Z0-9_]*'

qualified_identifier_expression   = identifier_token ( "." identifier_token )*

unary_expression              = number_token / qualified_identifier_expression

lvalue_expression             = qualified_identifier_expression
rvalue_expression             = expression

expression                    = compound_expression / unary_expression
compound_expression           = qualified_identifier_expression (method_call_par / index_par)+

method_call_par               = "(" (rvalue_expression ("," rvalue_expression)* )? ")"
index_par                     = "[" rvalue_expression ("," rvalue_expression)* "]"

belang = expression* EOF
