blob: 78b041035d7ced897000c680c32f3a2f1badc8e0 (
plain) (
tree)
|
|
{
open Netlist_parser
exception Eof
let keyword_list =
[
"AND", AND;
"CONCAT", CONCAT;
"IN", IN;
"INPUT", INPUT;
"MUX", MUX;
"NAND", NAND;
"NOT", NOT;
"OR", OR;
"OUTPUT", OUTPUT;
"RAM", RAM;
"REG", REG;
"ROM", ROM;
"SELECT", SELECT;
"SLICE", SLICE;
"VAR", VAR;
"XOR", XOR;
]
}
rule token = parse
[' ' '\t' '\n'] { token lexbuf } (* skip blanks *)
| "=" { EQUAL }
| ":" { COLON }
| "," { COMMA }
| ['0'-'9']+ as lxm { INT(int_of_string lxm) }
| ('_' ? ['A'-'Z' 'a'-'z']('_' ? ['A'-'Z' 'a'-'z' ''' '0'-'9']) * as id)
{ let s = Lexing.lexeme lexbuf in
try List.assoc s keyword_list
with Not_found -> NAME id }
| eof { EOF }
|