1
0
mirror of https://github.com/ubf/ubf.git synced 2026-04-25 06:07:22 +00:00
Files
ubf/contract.xrl
Joseph Wayne Norton 01172799d8 import ubf-1.7.tgz
2009-04-11 20:53:36 +09:00

51 lines
1.3 KiB
Erlang

%% Token Definitions for UBF(2)
%% Joe Armstrong (joe@sics.se) 2002-02-22
%% Derived from nex.xrl by Robert Virding
Definitions.
O = [0-7]
D = [0-9]
H = [0-9a-fA-F]
A = [a-z_A-Z@0-9]
WS = [\000-\s]
Rules.
{D}+ : {token,{integer,YYline,list_to_integer(YYtext)}}.
[a-z]{A}* : Atom = list_to_atom(YYtext),
{token,case reserved_word(Atom) of
true -> {Atom,YYline};
false -> {atom,YYline,Atom}
end}.
VSN : {token,{vsn, YYline}}.
TYPE : {token,{typeKwd,YYline}}.
STATE : {token,{state,YYline}}.
EVENT : {token,{event,YYline}}.
NAME : {token,{name,YYline}}.
INFO : {token,{info,YYline}}.
DESCRIPTION : {token,{description,YYline}}.
"[^"]*" : S = lists:sublist(YYtext, 2, length(YYtext) - 2),
{token,{string,YYline,S}}.
=> : {token,{'=>',YYline}}.
[;&,=+()[\]|<>{}] :
{token,{list_to_atom(YYtext),YYline}}.
\.{WS} : {end_token,{dot,YYline}}.
\.%.* : {end_token,{dot,YYline}}. % Must special case this
{WS}+ : . % No token returned,eqivalent
\%.* : skip_token. % to 'skip_token'
[A-Z]+ : skip_token.
Erlang code.
-author('joe@sics.se').
-copyright('Copyright (c) 2001 SICS').
-export([reserved_word/1]).
reserved_word(_) -> false.