make lexer/parser aware of wand/wor net types
authorStefan Biereigel <stefan.biereigel@cern.ch>
Wed, 22 May 2019 12:22:42 +0000 (14:22 +0200)
committerStefan Biereigel <stefan.biereigel@cern.ch>
Thu, 23 May 2019 11:57:27 +0000 (13:57 +0200)
frontends/ast/ast.h
frontends/verilog/verilog_lexer.l
frontends/verilog/verilog_parser.y

index 281cbe0865ba8987fed475e9c7d71944c3ab9d14..6c19dc7e61a4ade86f5c006608673030ee934e27 100644 (file)
@@ -173,7 +173,7 @@ namespace AST
                // node content - most of it is unused in most node types
                std::string str;
                std::vector<RTLIL::State> bits;
-               bool is_input, is_output, is_reg, is_logic, is_signed, is_string, range_valid, range_swapped, was_checked;
+               bool is_input, is_output, is_reg, is_logic, is_signed, is_string, is_wand, is_wor, range_valid, range_swapped, was_checked;
                int port_id, range_left, range_right;
                uint32_t integer;
                double realvalue;
index 142d05d45be2c73966779644414f688822001b9b..c763841c28c1c2fdda5728d278e759b8e52524ac 100644 (file)
@@ -218,6 +218,8 @@ YOSYS_NAMESPACE_END
 "output"  { return TOK_OUTPUT; }
 "inout"   { return TOK_INOUT; }
 "wire"    { return TOK_WIRE; }
+"wor"     { return TOK_WOR; }
+"wand"    { return TOK_WAND; }
 "reg"     { return TOK_REG; }
 "integer" { return TOK_INTEGER; }
 "signed"  { return TOK_SIGNED; }
index 132468f0ccc726642e37da96f957bd34f8ba74a6..8800705acccb1f42cca09d468bdf474441f630df 100644 (file)
@@ -139,7 +139,7 @@ struct specify_rise_fall {
 %token TOK_MODULE TOK_ENDMODULE TOK_PARAMETER TOK_LOCALPARAM TOK_DEFPARAM
 %token TOK_PACKAGE TOK_ENDPACKAGE TOK_PACKAGESEP
 %token TOK_INTERFACE TOK_ENDINTERFACE TOK_MODPORT TOK_VAR
-%token TOK_INPUT TOK_OUTPUT TOK_INOUT TOK_WIRE TOK_REG TOK_LOGIC
+%token TOK_INPUT TOK_OUTPUT TOK_INOUT TOK_WIRE TOK_WAND TOK_WOR TOK_REG TOK_LOGIC
 %token TOK_INTEGER TOK_SIGNED TOK_ASSIGN TOK_ALWAYS TOK_INITIAL
 %token TOK_BEGIN TOK_END TOK_IF TOK_ELSE TOK_FOR TOK_WHILE TOK_REPEAT
 %token TOK_DPI_FUNCTION TOK_POSEDGE TOK_NEGEDGE TOK_OR TOK_AUTOMATIC
@@ -485,6 +485,12 @@ wire_type_token_io:
 wire_type_token:
        TOK_WIRE {
        } |
+       TOK_WOR {
+        astbuf3->is_wor = true;
+       } |
+       TOK_WAND {
+        astbuf3->is_wand = true;
+       } |
        TOK_REG {
                astbuf3->is_reg = true;
        } |