diff options
| author | Tristan Gingold <tgingold@free.fr> | 2015-01-15 21:39:27 +0100 | 
|---|---|---|
| committer | Tristan Gingold <tgingold@free.fr> | 2015-01-15 21:39:27 +0100 | 
| commit | 7feacb916efb1059b45e6297337fbf5beb67e0c2 (patch) | |
| tree | 762091d6f0702b10d8896e796fa8cf547eddb0b1 /src | |
| parent | 321635b007eb1c63a7f1f12a734c8e0a61ba5a98 (diff) | |
| download | ghdl-7feacb916efb1059b45e6297337fbf5beb67e0c2.tar.gz ghdl-7feacb916efb1059b45e6297337fbf5beb67e0c2.tar.bz2 ghdl-7feacb916efb1059b45e6297337fbf5beb67e0c2.zip | |
PSL: add comments, scan endpoint.
Diffstat (limited to 'src')
| -rw-r--r-- | src/vhdl/parse.adb | 5 | ||||
| -rw-r--r-- | src/vhdl/parse_psl.adb | 13 | ||||
| -rw-r--r-- | src/vhdl/scanner.adb | 2 | 
3 files changed, 16 insertions, 4 deletions
| diff --git a/src/vhdl/parse.adb b/src/vhdl/parse.adb index 1eb513ff5..3ad8c1148 100644 --- a/src/vhdl/parse.adb +++ b/src/vhdl/parse.adb @@ -6515,17 +6515,22 @@ package body Parse is        Res : Iir;     begin        Res := Create_Iir (Iir_Kind_Psl_Declaration); + +      --  Skip 'property', 'sequence' or 'endpoint'.        Scan; +        if Current_Token /= Tok_Identifier then           Error_Msg_Parse ("property name expected here");        else           Set_Identifier (Res, Current_Identifier);        end if; +        Scanner.Flag_Psl := True;        Set_Psl_Declaration (Res, Parse_Psl.Parse_Psl_Declaration (Tok));        Expect (Tok_Semi_Colon);        Scanner.Flag_Scan_In_Comment := False;        Scanner.Flag_Psl := False; +        return Res;     end Parse_Psl_Declaration; diff --git a/src/vhdl/parse_psl.adb b/src/vhdl/parse_psl.adb index 7cb20ca3b..b71dc745f 100644 --- a/src/vhdl/parse_psl.adb +++ b/src/vhdl/parse_psl.adb @@ -203,19 +203,23 @@ package body Parse_Psl is        end loop;     end Parse_SERE; -   --  precond: '{' +   --  precond : '{' +   --  postcond: next token after '}'     function Parse_Braced_SERE return Node is        Res : Node;     begin -      if Current_Token /= Tok_Left_Curly then -         raise Program_Error; -      end if; +      pragma Assert (Current_Token = Tok_Left_Curly);        Res := Create_Node_Loc (N_Braced_SERE); + +      --  Skip '{'        Scan; +        Set_SERE (Res, Parse_SERE (Prio_Lowest)); +        if Current_Token /= Tok_Right_Curly then           Error_Msg_Parse ("missing '}' after braced SERE");        else +         --  Skip '}'           Scan;        end if;        return Res; @@ -651,6 +655,7 @@ package body Parse_Psl is        if Current_Token /= Tok_Is then           Error_Msg_Parse ("'is' expected after identifier");        else +         --  Skip 'is'.           Scan;        end if;        case Kind is diff --git a/src/vhdl/scanner.adb b/src/vhdl/scanner.adb index 32ae03ff6..f18723d1f 100644 --- a/src/vhdl/scanner.adb +++ b/src/vhdl/scanner.adb @@ -915,6 +915,8 @@ package body Scanner is                 Current_Token := Tok_Psl_Sequence;              when Std_Names.Name_Property =>                 Current_Token := Tok_Psl_Property; +            when Std_Names.Name_Endpoint => +               Current_Token := Tok_Psl_Endpoint;              when Std_Names.Name_Cover =>                 Current_Token := Tok_Psl_Cover;              when Std_Names.Name_Default => | 
