From f1d236b83003eda71e12840732d159fd23b1b771 Mon Sep 17 00:00:00 2001 From: xleroy Date: Tue, 29 Apr 2014 13:58:18 +0000 Subject: Integration of Jacques-Henri Jourdan's verified parser. (Merge of branch newparser.) git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2469 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- backend/CMparser.mly | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'backend/CMparser.mly') diff --git a/backend/CMparser.mly b/backend/CMparser.mly index f0f92f26..8c3769af 100644 --- a/backend/CMparser.mly +++ b/backend/CMparser.mly @@ -299,8 +299,6 @@ let mkmatch expr cases = %token GREATERGREATERLU %token IDENT %token IF -%token IN -%token INLINE %token INT %token INT16 %token INT16S @@ -329,7 +327,6 @@ let mkmatch expr cases = %token LESSEQUALLU %token LESSLESS %token LESSLESSL -%token LET %token LONG %token LONGLIT %token LONGOFINT @@ -378,10 +375,8 @@ let mkmatch expr cases = %token WHILE /* Precedences from low to high */ - -%left COMMA -%left p_let -%right EQUAL +%nonassoc p_THEN +%nonassoc ELSE %left BAR BARL %left CARET CARETL %left AMPERSAND AMPERSANDL @@ -389,7 +384,7 @@ let mkmatch expr cases = %left LESSLESS GREATERGREATER GREATERGREATERU LESSLESSL GREATERGREATERL GREATERGREATERLU %left PLUS PLUSF PLUSL MINUS MINUSF MINUSL %left STAR SLASH PERCENT STARF SLASHF SLASHU PERCENTU STARL SLASHL SLASHLU PERCENTL PERCENTLU -%nonassoc BANG TILDE TILDEL p_uminus ABSF INTOFFLOAT INTUOFFLOAT FLOATOFINT FLOATOFINTU INT8S INT8U INT16S INT16U FLOAT32 ALLOC INTOFLONG LONGOFINT LONGOFINTU LONGOFFLOAT LONGUOFFLOAT FLOATOFLONG FLOATOFLONGU +%nonassoc BANG TILDE TILDEL p_uminus ABSF INTOFFLOAT INTUOFFLOAT FLOATOFINT FLOATOFINTU INT8S INT8U INT16S INT16U FLOAT32 INTOFLONG LONGOFINT LONGOFINTU LONGOFFLOAT LONGUOFFLOAT FLOATOFLONG FLOATOFLONGU %left LPAREN /* Entry point */ @@ -528,7 +523,7 @@ stmt: | memory_chunk LBRACKET expr RBRACKET EQUAL expr SEMICOLON { mkstore $1 $3 $6 } | IF LPAREN expr RPAREN stmts ELSE stmts { mkifthenelse $3 $5 $7 } - | IF LPAREN expr RPAREN stmts { mkifthenelse $3 $5 Sskip } + | IF LPAREN expr RPAREN stmts %prec p_THEN { mkifthenelse $3 $5 Sskip } | LOOP stmts { Sloop($2) } | LBRACELBRACE stmt_list RBRACERBRACE { Sblock($2) } | EXIT SEMICOLON { Sexit O } @@ -672,7 +667,7 @@ expr_list: ; expr_list_1: - expr %prec COMMA { $1 :: [] } + expr { $1 :: [] } | expr COMMA expr_list_1 { $1 :: $3 } ; -- cgit