aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-08-01 07:36:43 +0200
committerTristan Gingold <tgingold@free.fr>2020-08-01 07:36:43 +0200
commita358d58e8592316fa1421445e73531e00247744f (patch)
tree9f1d2580d13feaeb3d6d4e3aa8cea53a9b4c3cfd /src
parentc428e1f4c697d550a8e986aa2c1918a992826234 (diff)
downloadghdl-a358d58e8592316fa1421445e73531e00247744f.tar.gz
ghdl-a358d58e8592316fa1421445e73531e00247744f.tar.bz2
ghdl-a358d58e8592316fa1421445e73531e00247744f.zip
vhdl: add force and release tokens. For #1416
Diffstat (limited to 'src')
-rw-r--r--src/std_names.adb4
-rw-r--r--src/std_names.ads136
-rw-r--r--src/vhdl/vhdl-tokens.adb4
-rw-r--r--src/vhdl/vhdl-tokens.ads2
4 files changed, 76 insertions, 70 deletions
diff --git a/src/std_names.adb b/src/std_names.adb
index f9768b68c..f633f3fbf 100644
--- a/src/std_names.adb
+++ b/src/std_names.adb
@@ -157,8 +157,10 @@ package body Std_Names is
Def ("context", Name_Context);
Def ("cover", Name_Cover);
Def ("default", Name_Default);
+ Def ("force", Name_Force);
Def ("parameter", Name_Parameter);
Def ("property", Name_Property);
+ Def ("release", Name_Release);
Def ("restrict", Name_Restrict);
Def ("restrict_guarantee", Name_Restrict_Guarantee);
Def ("sequence", Name_Sequence);
@@ -200,7 +202,6 @@ package body Std_Names is
Def ("endspecify", Name_Endspecify);
Def ("endtable", Name_Endtable);
Def ("endtask", Name_Endtask);
- Def ("force", Name_Force);
Def ("forever", Name_Forever);
Def ("fork", Name_Fork);
Def ("highz0", Name_Highz0);
@@ -226,7 +227,6 @@ package body Std_Names is
Def ("pulldown", Name_Pulldown);
Def ("pullup", Name_Pullup);
Def ("realtime", Name_Realtime);
- Def ("release", Name_Release);
Def ("reg", Name_Reg);
Def ("repeat", Name_Repeat);
Def ("rcmos", Name_Rcmos);
diff --git a/src/std_names.ads b/src/std_names.ads
index 7082f13e3..31ddfb621 100644
--- a/src/std_names.ads
+++ b/src/std_names.ads
@@ -176,14 +176,16 @@ package Std_Names is
Name_Context : constant Name_Id := Name_First_Keyword + 099;
Name_Cover : constant Name_Id := Name_First_Keyword + 100;
Name_Default : constant Name_Id := Name_First_Keyword + 101;
- Name_Parameter : constant Name_Id := Name_First_Keyword + 102;
- Name_Property : constant Name_Id := Name_First_Keyword + 103;
- Name_Restrict : constant Name_Id := Name_First_Keyword + 104;
- Name_Restrict_Guarantee : constant Name_Id := Name_First_Keyword + 105;
- Name_Sequence : constant Name_Id := Name_First_Keyword + 106;
- Name_Vmode : constant Name_Id := Name_First_Keyword + 107;
- Name_Vprop : constant Name_Id := Name_First_Keyword + 108;
- Name_Vunit : constant Name_Id := Name_First_Keyword + 109;
+ Name_Force : constant Name_Id := Name_First_Keyword + 102;
+ Name_Parameter : constant Name_Id := Name_First_Keyword + 103;
+ Name_Property : constant Name_Id := Name_First_Keyword + 104;
+ Name_Release : constant Name_Id := Name_First_Keyword + 105;
+ Name_Restrict : constant Name_Id := Name_First_Keyword + 106;
+ Name_Restrict_Guarantee : constant Name_Id := Name_First_Keyword + 107;
+ Name_Sequence : constant Name_Id := Name_First_Keyword + 108;
+ Name_Vmode : constant Name_Id := Name_First_Keyword + 109;
+ Name_Vprop : constant Name_Id := Name_First_Keyword + 110;
+ Name_Vunit : constant Name_Id := Name_First_Keyword + 111;
Name_Last_Vhdl08 : constant Name_Id := Name_Vunit;
subtype Name_Id_Vhdl08_Reserved_Words is
@@ -234,66 +236,64 @@ package Std_Names is
Name_Endspecify : constant Name_Id := Name_First_Verilog + 16;
Name_Endtable : constant Name_Id := Name_First_Verilog + 17;
Name_Endtask : constant Name_Id := Name_First_Verilog + 18;
- Name_Force : constant Name_Id := Name_First_Verilog + 19;
- Name_Forever : constant Name_Id := Name_First_Verilog + 20;
- Name_Fork : constant Name_Id := Name_First_Verilog + 21;
- Name_Highz0 : constant Name_Id := Name_First_Verilog + 22;
- Name_Highz1 : constant Name_Id := Name_First_Verilog + 23;
- Name_Ifnone : constant Name_Id := Name_First_Verilog + 24;
- Name_Initial : constant Name_Id := Name_First_Verilog + 25;
- Name_Input : constant Name_Id := Name_First_Verilog + 26;
- Name_Join : constant Name_Id := Name_First_Verilog + 27;
- Name_Large : constant Name_Id := Name_First_Verilog + 28;
- Name_Macromodule : constant Name_Id := Name_First_Verilog + 29;
- Name_Medium : constant Name_Id := Name_First_Verilog + 30;
- Name_Module : constant Name_Id := Name_First_Verilog + 31;
- Name_Negedge : constant Name_Id := Name_First_Verilog + 32;
- Name_Nmos : constant Name_Id := Name_First_Verilog + 33;
- Name_Notif0 : constant Name_Id := Name_First_Verilog + 34;
- Name_Notif1 : constant Name_Id := Name_First_Verilog + 35;
- Name_Output : constant Name_Id := Name_First_Verilog + 36;
- Name_Pmos : constant Name_Id := Name_First_Verilog + 37;
- Name_Posedge : constant Name_Id := Name_First_Verilog + 38;
- Name_Primitive : constant Name_Id := Name_First_Verilog + 39;
- Name_Pull0 : constant Name_Id := Name_First_Verilog + 40;
- Name_Pull1 : constant Name_Id := Name_First_Verilog + 41;
- Name_Pulldown : constant Name_Id := Name_First_Verilog + 42;
- Name_Pullup : constant Name_Id := Name_First_Verilog + 43;
- Name_Realtime : constant Name_Id := Name_First_Verilog + 44;
- Name_Release : constant Name_Id := Name_First_Verilog + 45;
- Name_Reg : constant Name_Id := Name_First_Verilog + 46;
- Name_Repeat : constant Name_Id := Name_First_Verilog + 47;
- Name_Rcmos : constant Name_Id := Name_First_Verilog + 48;
- Name_Rnmos : constant Name_Id := Name_First_Verilog + 49;
- Name_Rpmos : constant Name_Id := Name_First_Verilog + 50;
- Name_Rtran : constant Name_Id := Name_First_Verilog + 51;
- Name_Rtranif0 : constant Name_Id := Name_First_Verilog + 52;
- Name_Rtranif1 : constant Name_Id := Name_First_Verilog + 53;
- Name_Scalared : constant Name_Id := Name_First_Verilog + 54;
- Name_Small : constant Name_Id := Name_First_Verilog + 55;
- Name_Specify : constant Name_Id := Name_First_Verilog + 56;
- Name_Specparam : constant Name_Id := Name_First_Verilog + 57;
- Name_Strong0 : constant Name_Id := Name_First_Verilog + 58;
- Name_Strong1 : constant Name_Id := Name_First_Verilog + 59;
- Name_Supply0 : constant Name_Id := Name_First_Verilog + 60;
- Name_Supply1 : constant Name_Id := Name_First_Verilog + 61;
- Name_Tablex : constant Name_Id := Name_First_Verilog + 62;
- Name_Task : constant Name_Id := Name_First_Verilog + 63;
- Name_Tran : constant Name_Id := Name_First_Verilog + 64;
- Name_Tranif0 : constant Name_Id := Name_First_Verilog + 65;
- Name_Tranif1 : constant Name_Id := Name_First_Verilog + 66;
- Name_Tri : constant Name_Id := Name_First_Verilog + 67;
- Name_Tri0 : constant Name_Id := Name_First_Verilog + 68;
- Name_Tri1 : constant Name_Id := Name_First_Verilog + 69;
- Name_Triand : constant Name_Id := Name_First_Verilog + 70;
- Name_Trior : constant Name_Id := Name_First_Verilog + 71;
- Name_Trireg : constant Name_Id := Name_First_Verilog + 72;
- Name_Vectored : constant Name_Id := Name_First_Verilog + 73;
- Name_Wand : constant Name_Id := Name_First_Verilog + 74;
- Name_Weak0 : constant Name_Id := Name_First_Verilog + 75;
- Name_Weak1 : constant Name_Id := Name_First_Verilog + 76;
- Name_Wire : constant Name_Id := Name_First_Verilog + 77;
- Name_Wor : constant Name_Id := Name_First_Verilog + 78;
+ Name_Forever : constant Name_Id := Name_First_Verilog + 19;
+ Name_Fork : constant Name_Id := Name_First_Verilog + 20;
+ Name_Highz0 : constant Name_Id := Name_First_Verilog + 21;
+ Name_Highz1 : constant Name_Id := Name_First_Verilog + 22;
+ Name_Ifnone : constant Name_Id := Name_First_Verilog + 23;
+ Name_Initial : constant Name_Id := Name_First_Verilog + 24;
+ Name_Input : constant Name_Id := Name_First_Verilog + 25;
+ Name_Join : constant Name_Id := Name_First_Verilog + 26;
+ Name_Large : constant Name_Id := Name_First_Verilog + 27;
+ Name_Macromodule : constant Name_Id := Name_First_Verilog + 28;
+ Name_Medium : constant Name_Id := Name_First_Verilog + 29;
+ Name_Module : constant Name_Id := Name_First_Verilog + 30;
+ Name_Negedge : constant Name_Id := Name_First_Verilog + 31;
+ Name_Nmos : constant Name_Id := Name_First_Verilog + 32;
+ Name_Notif0 : constant Name_Id := Name_First_Verilog + 33;
+ Name_Notif1 : constant Name_Id := Name_First_Verilog + 34;
+ Name_Output : constant Name_Id := Name_First_Verilog + 35;
+ Name_Pmos : constant Name_Id := Name_First_Verilog + 36;
+ Name_Posedge : constant Name_Id := Name_First_Verilog + 37;
+ Name_Primitive : constant Name_Id := Name_First_Verilog + 38;
+ Name_Pull0 : constant Name_Id := Name_First_Verilog + 39;
+ Name_Pull1 : constant Name_Id := Name_First_Verilog + 40;
+ Name_Pulldown : constant Name_Id := Name_First_Verilog + 41;
+ Name_Pullup : constant Name_Id := Name_First_Verilog + 42;
+ Name_Realtime : constant Name_Id := Name_First_Verilog + 43;
+ Name_Reg : constant Name_Id := Name_First_Verilog + 44;
+ Name_Repeat : constant Name_Id := Name_First_Verilog + 45;
+ Name_Rcmos : constant Name_Id := Name_First_Verilog + 46;
+ Name_Rnmos : constant Name_Id := Name_First_Verilog + 47;
+ Name_Rpmos : constant Name_Id := Name_First_Verilog + 48;
+ Name_Rtran : constant Name_Id := Name_First_Verilog + 49;
+ Name_Rtranif0 : constant Name_Id := Name_First_Verilog + 50;
+ Name_Rtranif1 : constant Name_Id := Name_First_Verilog + 51;
+ Name_Scalared : constant Name_Id := Name_First_Verilog + 52;
+ Name_Small : constant Name_Id := Name_First_Verilog + 53;
+ Name_Specify : constant Name_Id := Name_First_Verilog + 54;
+ Name_Specparam : constant Name_Id := Name_First_Verilog + 55;
+ Name_Strong0 : constant Name_Id := Name_First_Verilog + 56;
+ Name_Strong1 : constant Name_Id := Name_First_Verilog + 57;
+ Name_Supply0 : constant Name_Id := Name_First_Verilog + 58;
+ Name_Supply1 : constant Name_Id := Name_First_Verilog + 59;
+ Name_Tablex : constant Name_Id := Name_First_Verilog + 60;
+ Name_Task : constant Name_Id := Name_First_Verilog + 61;
+ Name_Tran : constant Name_Id := Name_First_Verilog + 62;
+ Name_Tranif0 : constant Name_Id := Name_First_Verilog + 63;
+ Name_Tranif1 : constant Name_Id := Name_First_Verilog + 64;
+ Name_Tri : constant Name_Id := Name_First_Verilog + 65;
+ Name_Tri0 : constant Name_Id := Name_First_Verilog + 66;
+ Name_Tri1 : constant Name_Id := Name_First_Verilog + 67;
+ Name_Triand : constant Name_Id := Name_First_Verilog + 68;
+ Name_Trior : constant Name_Id := Name_First_Verilog + 69;
+ Name_Trireg : constant Name_Id := Name_First_Verilog + 70;
+ Name_Vectored : constant Name_Id := Name_First_Verilog + 71;
+ Name_Wand : constant Name_Id := Name_First_Verilog + 72;
+ Name_Weak0 : constant Name_Id := Name_First_Verilog + 73;
+ Name_Weak1 : constant Name_Id := Name_First_Verilog + 74;
+ Name_Wire : constant Name_Id := Name_First_Verilog + 75;
+ Name_Wor : constant Name_Id := Name_First_Verilog + 76;
Name_Last_Verilog : constant Name_Id := Name_Wor;
-- Verilog 2001
diff --git a/src/vhdl/vhdl-tokens.adb b/src/vhdl/vhdl-tokens.adb
index c4550af82..eb98894f3 100644
--- a/src/vhdl/vhdl-tokens.adb
+++ b/src/vhdl/vhdl-tokens.adb
@@ -360,10 +360,14 @@ package body Vhdl.Tokens is
return "cover";
when Tok_Default =>
return "default";
+ when Tok_Force =>
+ return "force";
when Tok_Parameter =>
return "parameter";
when Tok_Property =>
return "property";
+ when Tok_Release =>
+ return "release";
when Tok_Restrict =>
return "restrict";
when Tok_Restrict_Guarantee =>
diff --git a/src/vhdl/vhdl-tokens.ads b/src/vhdl/vhdl-tokens.ads
index 373b92acc..6796b204a 100644
--- a/src/vhdl/vhdl-tokens.ads
+++ b/src/vhdl/vhdl-tokens.ads
@@ -242,8 +242,10 @@ package Vhdl.Tokens is
Tok_Context,
Tok_Cover,
Tok_Default,
+ Tok_Force,
Tok_Parameter,
Tok_Property,
+ Tok_Release,
Tok_Restrict,
Tok_Restrict_Guarantee,
Tok_Sequence,