From 802e551ff4708a4d7896a71249b2f169dbdf4251 Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Mon, 26 Aug 2019 00:14:45 -0700 Subject: [PATCH] Backport fix for parser to post 2. --- 02/parser.y | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/02/parser.y b/02/parser.y index d8c45b7..fdb72c9 100644 --- a/02/parser.y +++ b/02/parser.y @@ -32,7 +32,7 @@ extern yy::parser::symbol_type yylex(); %define api.value.type variant %define api.token.constructor -%type > lowercaseParams +%type > lowercaseParams uppercaseParams %type > program definitions %type > branches %type > constructors @@ -71,6 +71,11 @@ lowercaseParams | lowercaseParams LID { $$ = std::move($1); $$.push_back(std::move($2)); } ; +uppercaseParams + : %empty { $$ = std::vector(); } + | uppercaseParams UID { $$ = std::move($1); $$.push_back(std::move($2)); } + ; + aAdd : aAdd PLUS aMul { $$ = ast_ptr(new ast_binop(PLUS, std::move($1), std::move($3))); } | aAdd MINUS aMul { $$ = ast_ptr(new ast_binop(MINUS, std::move($1), std::move($3))); } @@ -102,7 +107,7 @@ case ; branches - : branches COMMA branch { $$ = std::move($1); $1.push_back(std::move($3)); } + : branches branch { $$ = std::move($1); $1.push_back(std::move($2)); } | branch { $$ = std::vector(); $$.push_back(std::move($1));} ; @@ -129,7 +134,7 @@ constructors ; constructor - : UID lowercaseParams + : UID uppercaseParams { $$ = constructor_ptr(new constructor(std::move($1), std::move($2))); } ;