summaryrefslogtreecommitdiff
path: root/tokens.ads
diff options
context:
space:
mode:
authorgingold2005-09-24 05:10:24 +0000
committergingold2005-09-24 05:10:24 +0000
commit977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849 (patch)
tree7bcf8e7aff40a8b54d4af83e90cccd73568e77bb /tokens.ads
downloadghdl-977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849.tar.gz
ghdl-977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849.tar.bz2
ghdl-977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849.zip
First import from sources
Diffstat (limited to 'tokens.ads')
-rw-r--r--tokens.ads212
1 files changed, 212 insertions, 0 deletions
diff --git a/tokens.ads b/tokens.ads
new file mode 100644
index 0000000..2e7b2d6
--- /dev/null
+++ b/tokens.ads
@@ -0,0 +1,212 @@
+-- Scanner token definitions.
+-- Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold
+--
+-- GHDL is free software; you can redistribute it and/or modify it under
+-- the terms of the GNU General Public License as published by the Free
+-- Software Foundation; either version 2, or (at your option) any later
+-- version.
+--
+-- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or
+-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+-- for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with GCC; see the file COPYING. If not, write to the Free
+-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+-- 02111-1307, USA.
+package Tokens is
+ pragma Pure (Tokens);
+
+ type Token_Type is
+ (
+ Tok_Invalid, -- current_token is not valid.
+
+ Tok_Left_Paren, -- (
+ Tok_Right_Paren, -- )
+ Tok_Left_Bracket, -- [
+ Tok_Right_Bracket, -- ]
+ Tok_Colon, -- :
+ Tok_Semi_Colon, -- ;
+ Tok_Comma, -- ,
+ Tok_Arrow, -- =>
+ Tok_Tick, -- '
+ Tok_Double_Star, -- **
+ Tok_Assign, -- :=
+ Tok_Bar, -- |
+ Tok_Box, -- <>
+ Tok_Dot, -- .
+
+ Tok_Eof, -- End of file.
+ Tok_Newline,
+ Tok_Comment,
+ Tok_Character,
+ Tok_Identifier,
+ Tok_Integer,
+ Tok_Real,
+ Tok_String,
+ Tok_Bit_String,
+
+ -- relational_operator
+ Tok_Equal, -- =
+ Tok_Not_Equal, -- /=
+ Tok_Less, -- <
+ Tok_Less_Equal, -- <=
+ Tok_Greater, -- >
+ Tok_Greater_Equal, -- >=
+
+ -- sign token
+ Tok_Plus, -- +
+ Tok_Minus, -- -
+ -- and adding_operator
+ Tok_Ampersand, -- &
+
+ -- multiplying operator
+ Tok_Star, -- *
+ Tok_Slash, -- /
+ Tok_Mod, -- mod
+ Tok_Rem, -- rem
+
+ -- relation token:
+ Tok_And,
+ Tok_Or,
+ Tok_Xor,
+ Tok_Nand,
+ Tok_Nor,
+
+ -- miscellaneous operator
+ Tok_Abs,
+ Tok_Not,
+
+ -- Key words
+ Tok_Access,
+ Tok_After,
+ Tok_Alias,
+ Tok_All,
+ Tok_Architecture,
+ Tok_Array,
+ Tok_Assert,
+ Tok_Attribute,
+
+ Tok_Begin,
+ Tok_Block,
+ Tok_Body,
+ Tok_Buffer,
+ Tok_Bus,
+
+ Tok_Case,
+ Tok_Component,
+ Tok_Configuration,
+ Tok_Constant,
+
+ Tok_Disconnect,
+ Tok_Downto,
+
+ Tok_Else,
+ Tok_Elsif,
+ Tok_End,
+ Tok_Entity,
+ Tok_Exit,
+
+ Tok_File,
+ Tok_For,
+ Tok_Function,
+
+ Tok_Generate,
+ Tok_Generic,
+ Tok_Guarded,
+
+ Tok_If,
+ Tok_In,
+ Tok_Inout,
+ Tok_Is,
+
+ Tok_Label,
+ Tok_Library,
+ Tok_Linkage,
+ Tok_Loop,
+
+ Tok_Map,
+
+ Tok_New,
+ Tok_Next,
+ Tok_Null,
+
+ Tok_Of,
+ Tok_On,
+ Tok_Open,
+ Tok_Others,
+ Tok_Out,
+
+ Tok_Package,
+ Tok_Port,
+ Tok_Procedure,
+ Tok_Process,
+
+ Tok_Range,
+ Tok_Record,
+ Tok_Register,
+ Tok_Report,
+ Tok_Return,
+
+ Tok_Select,
+ Tok_Severity,
+ Tok_Signal,
+ Tok_Subtype,
+
+ Tok_Then,
+ Tok_To,
+ Tok_Transport,
+ Tok_Type,
+
+ Tok_Units,
+ Tok_Until,
+ Tok_Use,
+
+ Tok_Variable,
+
+ Tok_Wait,
+ Tok_When,
+ Tok_While,
+ Tok_With,
+
+ -- Tokens below this line are key words in vhdl93 but not in vhdl87
+ Tok_Xnor,
+ Tok_Group,
+ Tok_Impure,
+ Tok_Inertial,
+ Tok_Literal,
+ Tok_Postponed,
+ Tok_Pure,
+ Tok_Reject,
+ Tok_Shared,
+ Tok_Unaffected,
+
+ -- shift_operator
+ Tok_Sll,
+ Tok_Sla,
+ Tok_Sra,
+ Tok_Srl,
+ Tok_Rol,
+ Tok_Ror,
+
+ -- Added by Vhdl 2000:
+ Tok_Protected);
+
+ -- subtype Token_Relation_Type is Token_Type range Tok_And .. Tok_Xnor;
+ subtype Token_Relational_Operator_Type is Token_Type range
+ Tok_Equal .. Tok_Greater_Equal;
+ subtype Token_Shift_Operator_Type is Token_Type range
+ Tok_Sll .. Tok_Ror;
+ subtype Token_Sign_Type is Token_Type range
+ Tok_Plus .. Tok_Minus;
+ subtype Token_Adding_Operator_Type is Token_Type range
+ Tok_Plus .. Tok_Ampersand;
+ subtype Token_Multiplying_Operator_Type is Token_Type range
+ Tok_Star .. Tok_Rem;
+
+ Tok_First_Keyword : constant Tokens.Token_Type := Tokens.Tok_Mod;
+
+ -- Return the name of the token.
+ function Image (Token: Token_Type) return String;
+end Tokens;