diff --git a/src/language/PEGGrammar.hpp b/src/language/PEGGrammar.hpp index f45d46ccb84be654f7d131b40c5fa461fd52f32b..6ab533b41e236c6f3e9d1db90ba4e31020d902da 100644 --- a/src/language/PEGGrammar.hpp +++ b/src/language/PEGGrammar.hpp @@ -131,7 +131,8 @@ struct close_parent : seq< one< ')' >, ignored > {}; struct expression; struct parented_expression : if_must< open_parent, expression, close_parent > {}; -struct function_evaluation : seq< NAME, parented_expression > {}; +struct expression_list; +struct function_evaluation : seq< NAME, sor< expression_list, parented_expression > > {}; struct primary_expression : sor< BOOL, REAL, INTEGER, LITERAL, function_evaluation, NAME, parented_expression > {}; @@ -208,7 +209,7 @@ struct type_expression : list_must< TYPESPECIFIER, one< '*' > >{}; struct type_mapping : seq< type_expression, RIGHT_ARROW, type_expression >{}; struct name_list : seq< open_parent, list_must< NAME, COMMA >, close_parent >{}; -struct expression_list : seq< open_parent, list_must< expression, COMMA >, close_parent >{}; +struct expression_list : seq< open_parent, expression, plus< if_must< COMMA, expression > >, close_parent >{}; struct function_definition : seq< sor< name_list, NAME >, RIGHT_ARROW, sor< expression_list, expression > >{};