@@ -258,11 +258,11 @@ using namespace P4;
258258%token<Token> MASK "&&&"
259259%token<Token> DOTS "..."
260260%token<Token> RANGE ".."
261- %token<Token> TRUE FALSE THIS
262261%token<Token> ABSTRACT ACTION ACTIONS APPLY BOOL BIT BREAK CONST CONTINUE CONTROL DEFAULT
263- ELSE ENTRIES ENUM ERROR EXIT EXTERN FOR HEADER HEADER_UNION IF IN INOUT
264- INT KEY LIST SELECT MATCH_KIND TYPE OUT PACKAGE PARSER PRAGMA PRIORITY RETURN
265- STATE STRING STRUCT SWITCH TABLE TRANSITION TUPLE TYPEDEF VARBIT VALUESET VOID
262+ ELSE ENTRIES ENUM ERROR EXIT EXTERN FALSE FOR HEADER HEADER_UNION IF IN INOUT
263+ INT KEY LIST MATCH_KIND OUT PACKAGE PARSER PRAGMA PRIORITY RETURN SELECT
264+ STATE STRING STRUCT SWITCH TABLE THIS TRANSITION TRUE TUPLE TYPE TYPEDEF
265+ VARBIT VALUESET VOID
266266
267267%token<cstring> IDENTIFIER TYPE_IDENTIFIER STRING_LITERAL
268268%token<UnparsedConstant> INTEGER
@@ -506,13 +506,13 @@ declaration
506506
507507nonTypeName
508508 : IDENTIFIER { $$ = new IR::ID(@1, $1); }
509+ | ACTIONS { $$ = new IR::ID(@1, "actions"_cs); }
509510 | APPLY { $$ = new IR::ID(@1, "apply"_cs); }
511+ | ENTRIES { $$ = new IR::ID(@1, "entries"_cs); }
510512 | KEY { $$ = new IR::ID(@1, "key"_cs); }
511- | ACTIONS { $$ = new IR::ID(@1, "actions "_cs); }
513+ | PRIORITY { $$ = new IR::ID(@1, "priority "_cs); }
512514 | STATE { $$ = new IR::ID(@1, "state"_cs); }
513- | ENTRIES { $$ = new IR::ID(@1, "entries"_cs); }
514515 | TYPE { $$ = new IR::ID(@1, "type"_cs); }
515- | PRIORITY { $$ = new IR::ID(@1, "priority"_cs); }
516516 ;
517517
518518name
@@ -525,9 +525,9 @@ nonTableKwName
525525 : IDENTIFIER { $$ = new IR::ID(@1, $1); }
526526 | TYPE_IDENTIFIER { $$ = new IR::ID(@1, $1); }
527527 | APPLY { $$ = new IR::ID(@1, "apply"_cs); }
528+ | PRIORITY { $$ = new IR::ID(@1, "priority"_cs); }
528529 | STATE { $$ = new IR::ID(@1, "state"_cs); }
529530 | TYPE { $$ = new IR::ID(@1, "type"_cs); }
530- | PRIORITY { $$ = new IR::ID(@1, "priority"_cs); }
531531 ;
532532
533533optCONST
@@ -616,8 +616,8 @@ annotationName
616616 | INOUT { $$ = new IR::ID(@1, "inout"_cs); }
617617 | INT { $$ = new IR::ID(@1, "int"_cs); }
618618 | KEY { $$ = new IR::ID(@1, "key"_cs); }
619+ | LIST { $$ = new IR::ID(@1, "list"_cs); }
619620 | MATCH_KIND { $$ = new IR::ID(@1, "match_kind"_cs); }
620- | TYPE { $$ = new IR::ID(@1, "type"_cs); }
621621 | OUT { $$ = new IR::ID(@1, "out"_cs); }
622622 | PARSER { $$ = new IR::ID(@1, "parser"_cs); }
623623 | PACKAGE { $$ = new IR::ID(@1, "package"_cs); }
@@ -633,10 +633,10 @@ annotationName
633633 | TRANSITION { $$ = new IR::ID(@1, "transition"_cs); }
634634 | TRUE { $$ = new IR::ID(@1, "true"_cs); }
635635 | TUPLE { $$ = new IR::ID(@1, "tuple"_cs); }
636+ | TYPE { $$ = new IR::ID(@1, "type"_cs); }
636637 | TYPEDEF { $$ = new IR::ID(@1, "typedef"_cs); }
637638 | VARBIT { $$ = new IR::ID(@1, "varbit"_cs); }
638639 | VALUESET { $$ = new IR::ID(@1, "valueset"_cs); }
639- | LIST { $$ = new IR::ID(@1, "list"_cs); }
640640 | VOID { $$ = new IR::ID(@1, "void"_cs); }
641641 | "_" { $$ = new IR::ID(@1, "_"_cs); }
642642 | IDENTIFIER { $$ = new IR::ID(@1, $1); }
@@ -671,8 +671,8 @@ annotationToken
671671 | INOUT { $$ = $1; }
672672 | INT { $$ = $1; }
673673 | KEY { $$ = $1; }
674+ | LIST { $$ = $1; }
674675 | MATCH_KIND { $$ = $1; }
675- | TYPE { $$ = $1; }
676676 | OUT { $$ = $1; }
677677 | PARSER { $$ = $1; }
678678 | PACKAGE { $$ = $1; }
@@ -688,10 +688,10 @@ annotationToken
688688 | TRANSITION { $$ = $1; }
689689 | TRUE { $$ = $1; }
690690 | TUPLE { $$ = $1; }
691+ | TYPE { $$ = $1; }
691692 | TYPEDEF { $$ = $1; }
692693 | VARBIT { $$ = $1; }
693694 | VALUESET { $$ = $1; }
694- | LIST { $$ = $1; }
695695 | VOID { $$ = $1; }
696696 | "_" { $$ = $1; }
697697
@@ -777,8 +777,8 @@ parameter
777777
778778direction
779779 : IN { $$ = IR::Direction::In; }
780- | OUT { $$ = IR::Direction::Out; }
781780 | INOUT { $$ = IR::Direction::InOut; }
781+ | OUT { $$ = IR::Direction::Out; }
782782 | %empty { $$ = IR::Direction::None; }
783783 ;
784784
@@ -1102,18 +1102,15 @@ specializedType
11021102 ;
11031103
11041104baseType
1105- : BOOL { $$ = IR::Type_Boolean::get(@1); }
1106- | MATCH_KIND { $$ = IR::Type_MatchKind::get(@1); }
1105+ : BIT { $$ = IR::Type::Bits::get(@1, 1); }
1106+ | BIT l_angle nonGrtExpression r_angle { $$ = IR::Type_Bits::get(@1+@4, $3, false); }
1107+ | BOOL { $$ = IR::Type_Boolean::get(@1); }
11071108 | ERROR { $$ = new IR::Type_Name(@1, new IR::Path(IR::ID(@1, "error"_cs))); }
1108- | BIT { $$ = IR::Type::Bits::get(@1, 1); }
1109- | STRING { $$ = IR::Type::String::get(@1); }
11101109 | INT { $$ = IR::Type_InfInt::get(@1); }
1111- | BIT l_angle nonGrtExpression r_angle
1112- { $$ = IR::Type_Bits::get(@1+@4, $3, false); }
1113- | INT l_angle nonGrtExpression r_angle
1114- { $$ = IR::Type_Bits::get(@1+@4, $3, true); }
1115- | VARBIT l_angle nonGrtExpression r_angle
1116- { $$ = IR::Type_Varbits::get(@1+@4, $3); }
1110+ | INT l_angle nonGrtExpression r_angle { $$ = IR::Type_Bits::get(@1+@4, $3, true); }
1111+ | MATCH_KIND { $$ = IR::Type_MatchKind::get(@1); }
1112+ | STRING { $$ = IR::Type::String::get(@1); }
1113+ | VARBIT l_angle nonGrtExpression r_angle { $$ = IR::Type_Varbits::get(@1+@4, $3); }
11171114 ;
11181115
11191116typeOrVoid
0 commit comments