/* * Copyright (c) 2007 The Akuma Project * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * * $Id: lexer.lxi 130 2007-05-29 12:54:04Z asmodai $ */ /* * Crown Copyright (c) 1997 * * This TenDRA(r) Computer Program is subject to Copyright * owned by the United Kingdom Secretary of State for Defence * acting through the Defence Evaluation and Research Agency * (DERA). It is made available to Recipients with a * royalty-free licence for its use, reproduction, transfer * to other parties and amendment for any purpose not excluding * product development provided that any such use et cetera * shall be deemed to be acceptance of the following conditions:- * * (1) Its Recipients shall ensure that this Notice is * reproduced upon any copies or amended versions of it; * * (2) Any amended version of it shall be clearly marked to * show both the nature of and the organisation responsible * for the relevant amendment or amendments; * * (3) Its onward transfer from a recipient to another * party shall be deemed to be that party's acceptance of * these conditions; * * (4) DERA gives no warranty or assurance as to its * quality or suitability for any purpose and DERA accepts * no liability whatsoever in relation to any use to which * it may be put. */ /* * LEXICAL ANALYSER FOR LEXI * * This file describes the lexical analyser used by lexi. */ /* Character groups */ GROUP white = " \t\n\r"; GROUP alpha = {A-Z} + {a-z} + "_"; GROUP digit = {0-9}; GROUP alphanum = "[alpha][digit]"; /* Simple symbols */ TOKEN "(" -> $open; TOKEN ")" -> $close; TOKEN "{" -> $open-brace; TOKEN "}" -> $close-brace; TOKEN "->" -> $arrow; TOKEN ";" -> $semicolon; TOKEN "=" -> $equal; TOKEN "+" -> $plus; TOKEN "\e" -> $eof; /* Special strings */ TOKEN "{A-Z}" -> $upper; TOKEN "{a-z}" -> $lower; TOKEN "{0-9}" -> $digit; /* Comments, strings and identifiers */ TOKEN "/*" -> get_comment(); TOKEN "\"" -> get_string(); TOKEN "[alpha]" -> get_identifier(); TOKEN "$[alpha]" -> get_sid_ident(); /* Keywords */ KEYWORD "GROUP" -> $group; KEYWORD "KEYWORD" -> $keyword; KEYWORD "MAPPING" -> $mapping; KEYWORD "TOKEN" -> $token; KEYWORD "white" -> $white; KEYWORD "IF" -> $if; KEYWORD "ELSE" -> $else;