Skip to content
Browse files

import ubf-1.10.tgz

  • Loading branch information...
1 parent 52f849c commit 580fb80dd6309d073a7f43891165d9e23fb50d1c @norton norton committed
Showing with 2,505 additions and 1,500 deletions.
  1. +0 −1 .#irc_plugin.erl
  2. +1 −1 Makefile
  3. BIN client.beam
  4. +12 −12 client.erl
  5. +1 −1 contract.hrl
  6. +1 −0 contract.xrl
  7. +9 −4 contract.yrl
  8. BIN contract_lex.beam
  9. +407 −347 contract_lex.erl
  10. BIN contract_manager.beam
  11. +86 −8 contract_manager.erl
  12. BIN contract_parser.beam
  13. +8 −3 contract_parser.erl
  14. BIN contract_yecc.beam
  15. +367 −326 contract_yecc.erl
  16. BIN contracts.beam
  17. +1 −1 contracts.erl
  18. +1 −0 doc/site/downloads.html
  19. +7 −8 doc/site/eserve.html
  20. +25 −22 doc/site/file.html
  21. +4 −1 doc/site/home.html
  22. +9 −4 doc/site/irc.html
  23. +1 −0 doc/site/javac.html
  24. +1 −0 doc/site/messagebox.html
  25. +65 −35 doc/site/quick.html
  26. +5 −4 doc/site/ubfa.html
  27. +3 −2 doc/site/ubfa_quick.html
  28. +11 −6 doc/site/ubfb.html
  29. +3 −2 doc/site/ubfb_quick.html
  30. +189 −0 doc/site/ubfc.html
  31. +1 −0 doc/site/white.html
  32. +1 −1 doc/src/Makefile
  33. +2 −1 doc/src/Makefile~
  34. +4 −1 doc/src/home.ehtml
  35. +9 −1 doc/src/home.ehtml~
  36. +1 −0 doc/src/menus.inc
  37. +10 −2 doc/src/menus.inc~
  38. +57 −31 doc/src/quick.ehtml
  39. +41 −178 doc/src/quick.ehtml~
  40. +4 −4 doc/src/ubfa.ehtml
  41. +37 −37 doc/src/ubfa.ehtml~
  42. +2 −2 doc/src/ubfa_quick.ehtml
  43. +85 −3 doc/src/ubfa_quick.ehtml~
  44. +2 −2 doc/src/ubfb.ehtml
  45. +64 −111 doc/src/ubfb.ehtml~
  46. +2 −2 doc/src/ubfb_quick.ehtml
  47. +102 −0 doc/src/ubfb_quick.ehtml~
  48. +40 −0 doc/src/ubfc.ehtml
  49. +103 −0 doc/src/ubfc.ehtml~
  50. BIN file_client.beam
  51. +5 −5 file_client.erl
  52. BIN file_plugin.beam
  53. +1 −1 file_plugin.buc
  54. +13 −9 file_plugin.con
  55. +6 −8 file_plugin.erl
  56. BIN find.beam
  57. +5 −3 find.erl
  58. BIN irc_client.beam
  59. +2 −2 irc_client.erl
  60. BIN irc_client_gs.beam
  61. +2 −2 irc_client_gs.erl
  62. +0 −170 irc_client_gs.erl~
  63. BIN irc_plugin.beam
  64. +1 −1 irc_plugin.buc
  65. +8 −4 irc_plugin.con
  66. +2 −2 irc_plugin.erl
  67. BIN leex.beam
  68. +594 −0 nohup.out
  69. +1 −0 notes
  70. BIN plugin_handler.beam
  71. +28 −10 plugin_handler.erl
  72. BIN proc_socket_server.beam
  73. +1 −0 proc_socket_server.erl
  74. BIN server.beam
  75. +0 −1 server.buc
  76. 0 server.con → server.con.old
  77. +6 −38 server.erl
  78. BIN server_plugin.beam
  79. +1 −1 server_plugin.buc
  80. +9 −25 server_plugin.con
  81. +18 −40 server_plugin.erl
  82. BIN test.beam
  83. +12 −10 test.erl
  84. BIN test_plugin.beam
  85. +1 −1 test_plugin.buc
  86. +2 −0 test_plugin.con
  87. +2 −2 test_plugin.erl
  88. BIN ubf.beam
  89. BIN ubf_driver.beam
  90. +1 −1 ubf_driver.erl
  91. BIN ubf_test.beam
  92. BIN ubf_utils.beam
View
1 .#irc_plugin.erl
View
2 Makefile
@@ -16,7 +16,7 @@ ERL = ubf proc_socket_server find server\
PLUGINS = test_plugin file_plugin irc_plugin server_plugin
-CONTRACTS = test_plugin file_plugin irc_plugin server server_plugin
+CONTRACTS = test_plugin file_plugin irc_plugin server_plugin
BEAM = ${ERL:%=%.beam}
BUC = ${CONTRACTS:%=%.buc}
View
BIN client.beam
Binary file not shown.
View
24 client.erl
@@ -6,16 +6,19 @@
%% rpc(Pid, Q) -> Reply
%% stop(Pid) -> ack.
--export([start/2, rpc/2, stop/1, install_default_handler/1,
- info/1, services/1, install_handler/2, startService/3]).
+-export([connect/2, rpc/2, stop/1, install_default_handler/1,
+ info/1, services/1, install_handler/2, start/2]).
-import(ubf_utils, [spawn_link_debug/2]).
-import(lists, [reverse/1]).
+s(X) ->
+ {'#S', X}.
+
debug(F, S) -> true.
%% debug(F, S) -> io:format(F, S).
-start(Host, Port) ->
+connect(Host, Port) ->
Self = self(),
Pid = spawn_link_debug(client,
fun() -> client(Self, Host, Port) end),
@@ -74,8 +77,12 @@ rpc(Pid, Q) ->
end.
info(Pid) -> meta(Pid, info).
+decription(Pid) -> meta(Pid, description).
services(Pid) -> meta(Pid, services).
-
+start(Pid, Service) -> meta(Pid, {start, s(Service)}).
+contract(Pid) -> meta(Pid, contract).
+
+
meta(Pid, Q) ->
Pid ! {self(), {meta, Q}},
receive
@@ -86,13 +93,6 @@ meta(Pid, Q) ->
end.
-startService(Pid, Name, Args) ->
- Pid ! {self(), {startService, Name, Args}},
- receive
- {Pid, Reply} ->
- Reply
- end.
-
install_default_handler(Pid) ->
install_handler(Pid, fun drop_fun/1).
@@ -129,7 +129,7 @@ loop(Driver, Fun) ->
Driver ! {self(), Q},
receive
{Driver, Reply} ->
- From ! {self(), {ok, Reply}}
+ From ! {self(), Reply}
end,
loop(Driver, Fun);
{From, P={startService, Name, Reply}} ->
View
2 contract.hrl
@@ -1,3 +1,3 @@
--record(contract, {name, vsn, info, description,types,transitions}).
+-record(contract, {name, vsn, info, services, description,types,transitions}).
View
1 contract.xrl
@@ -23,6 +23,7 @@ EVENT : {token,{event,YYline}}.
NAME : {token,{name,YYline}}.
INFO : {token,{info,YYline}}.
DESCRIPTION : {token,{description,YYline}}.
+SERVICES : {token,{services,YYline}}.
"[^"]*" : S = lists:sublist(YYtext, 2, length(YYtext) - 2),
{token,{string,YYline,S}}.
=> : {token,{'=>',YYline}}.
View
13 contract.yrl
@@ -1,9 +1,9 @@
Nonterminals
-transitions transition outputs typeAndState
+transitions transition outputs typeAndState strings
form type orType annotatedType primType annotation typeSeq.
Terminals
-info description event vsn atom
+info description event vsn atom services
name integer string typeKwd state
':' '+' '|' '=' '{' '}' '&' ';' ',' '.' '[' ']' '(' ')' '=>' dot.
@@ -16,6 +16,7 @@ form -> '+' typeKwd atom '(' ')' '=' type dot : {type, {unwrap('$3'), '$7'}}.
form -> '+' state atom transitions dot: {transition, {unwrap('$3'), '$4'}}.
form -> '+' info '(' string ')' dot: {info, unwrap('$4')}.
form -> '+' description '(' string ')' dot: {description, unwrap('$4')}.
+form -> '+' services '(' strings ')' dot: {services, '$4'}.
type -> annotatedType orType : eor('$1', '$2').
@@ -25,12 +26,12 @@ orType -> '$empty' : nil.
annotatedType -> atom ':' ':' primType : '$4'.
annotatedType -> primType : '$1'.
-annotation -> atom.
+annotation -> atom : unwrap('$1').
primType -> atom '(' ')' : {prim, unwrap('$1')}.
primType -> '{' typeSeq '}' : {tuple, '$2'}.
primType -> '[' type ']' : {list, '$2'}.
-primType -> atom : {atom, unwrap('$1')}.
+primType -> atom : {constant, unwrap('$1')}.
primType -> integer : {integer, unwrap('$1')}.
primType -> integer '.' '.' integer : {range, unwrap('$1'), unwrap('$4')}.
primType -> string : {string, unwrap('$1')}.
@@ -49,6 +50,10 @@ outputs -> typeAndState : ['$1'].
typeAndState -> type '&' atom: {output, '$1', unwrap('$3')}.
+strings -> string ',' strings : [unwrap('$1')|'$3'].
+strings -> string : [unwrap('$1')].
+strings -> '$empty' : [].
+
Erlang code.
eor(X, nil) -> X;
View
BIN contract_lex.beam
Binary file not shown.
View
754 contract_lex.erl
@@ -213,406 +213,464 @@ yysuf(L, 0) -> L.
%% {reject, AcceptLength, TokLength, RestChars, Line, State}.
%% Generated state transition functions.
-yystate() -> 46.
-
-yystate(49, [$N|Ics], Line, Tlen, Action, Alen) ->
- yystate(47, Ics, Line, Tlen+1, 16, Tlen);
-yystate(49, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $M ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(49, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+yystate() -> 53.
+
+yystate(56, [$F|Ics], Line, Tlen, Action, Alen) ->
+ yystate(52, Ics, Line, Tlen+1, 17, Tlen);
+yystate(56, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $E ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(56, [C|Ics], Line, Tlen, Action, Alen) when C >= $G, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(56, Ics, Line, Tlen, Action, Alen) ->
+ {17,Tlen,Ics,Line,56};
+yystate(55, Ics, Line, Tlen, Action, Alen) ->
+ {12,Tlen,Ics,Line};
+yystate(54, [$N|Ics], Line, Tlen, Action, Alen) ->
+ yystate(56, Ics, Line, Tlen+1, 17, Tlen);
+yystate(54, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $M ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(54, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(54, Ics, Line, Tlen, Action, Alen) ->
+ {17,Tlen,Ics,Line,54};
+yystate(53, [$\n|Ics], Line, Tlen, Action, Alen) ->
+ yystate(49, Ics, Line+1, Tlen+1, Action, Alen);
+yystate(53, [$"|Ics], Line, Tlen, Action, Alen) ->
+ yystate(45, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$%|Ics], Line, Tlen, Action, Alen) ->
+ yystate(37, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$&|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$(|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$)|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$+|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$,|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$.|Ics], Line, Tlen, Action, Alen) ->
+ yystate(33, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$;|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$<|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$=|Ics], Line, Tlen, Action, Alen) ->
+ yystate(17, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$>|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$D|Ics], Line, Tlen, Action, Alen) ->
+ yystate(9, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(34, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$I|Ics], Line, Tlen, Action, Alen) ->
+ yystate(54, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$N|Ics], Line, Tlen, Action, Alen) ->
+ yystate(44, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$S|Ics], Line, Tlen, Action, Alen) ->
+ yystate(28, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$T|Ics], Line, Tlen, Action, Alen) ->
+ yystate(19, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$U|Ics], Line, Tlen, Action, Alen) ->
+ yystate(47, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$V|Ics], Line, Tlen, Action, Alen) ->
+ yystate(35, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$[|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [$]|Ics], Line, Tlen, Action, Alen) ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
+ yystate(49, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $\s ->
+ yystate(49, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $0, C =< $9 ->
+ yystate(21, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $C ->
+ yystate(47, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $H ->
+ yystate(47, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $J, C =< $M ->
+ yystate(47, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $R ->
+ yystate(47, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $W, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= $a, C =< $z ->
+ yystate(51, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, [C|Ics], Line, Tlen, Action, Alen) when C >= ${, C =< $} ->
+ yystate(55, Ics, Line, Tlen+1, Action, Alen);
+yystate(53, Ics, Line, Tlen, Action, Alen) ->
+ {Action,Alen,Tlen,Ics,Line,53};
+yystate(52, [$O|Ics], Line, Tlen, Action, Alen) ->
+ yystate(48, Ics, Line, Tlen+1, 17, Tlen);
+yystate(52, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $N ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(52, [C|Ics], Line, Tlen, Action, Alen) when C >= $P, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(52, Ics, Line, Tlen, Action, Alen) ->
+ {17,Tlen,Ics,Line,52};
+yystate(51, [$_|Ics], Line, Tlen, Action, Alen) ->
+ yystate(51, Ics, Line, Tlen+1, 1, Tlen);
+yystate(51, [C|Ics], Line, Tlen, Action, Alen) when C >= $0, C =< $9 ->
+ yystate(51, Ics, Line, Tlen+1, 1, Tlen);
+yystate(51, [C|Ics], Line, Tlen, Action, Alen) when C >= $@, C =< $Z ->
+ yystate(51, Ics, Line, Tlen+1, 1, Tlen);
+yystate(51, [C|Ics], Line, Tlen, Action, Alen) when C >= $a, C =< $z ->
+ yystate(51, Ics, Line, Tlen+1, 1, Tlen);
+yystate(51, Ics, Line, Tlen, Action, Alen) ->
+ {1,Tlen,Ics,Line,51};
+yystate(50, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 5, Tlen);
+yystate(50, Ics, Line, Tlen, Action, Alen) ->
+ {5,Tlen,Ics,Line,50};
+yystate(49, [$\n|Ics], Line, Tlen, Action, Alen) ->
+ yystate(49, Ics, Line+1, Tlen+1, 15, Tlen);
+yystate(49, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
+ yystate(49, Ics, Line, Tlen+1, 15, Tlen);
+yystate(49, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $\s ->
+ yystate(49, Ics, Line, Tlen+1, 15, Tlen);
yystate(49, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,49};
+ {15,Tlen,Ics,Line,49};
+yystate(48, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 7, Tlen);
yystate(48, Ics, Line, Tlen, Action, Alen) ->
- {11,Tlen,Ics,Line};
-yystate(47, [$T|Ics], Line, Tlen, Action, Alen) ->
- yystate(43, Ics, Line, Tlen+1, 16, Tlen);
-yystate(47, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $S ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(47, [C|Ics], Line, Tlen, Action, Alen) when C >= $U, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {7,Tlen,Ics,Line,48};
+yystate(47, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(47, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,47};
-yystate(46, [$\n|Ics], Line, Tlen, Action, Alen) ->
- yystate(42, Ics, Line+1, Tlen+1, Action, Alen);
-yystate(46, [$"|Ics], Line, Tlen, Action, Alen) ->
- yystate(38, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$%|Ics], Line, Tlen, Action, Alen) ->
- yystate(30, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$&|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$(|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$)|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$+|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$,|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$.|Ics], Line, Tlen, Action, Alen) ->
- yystate(26, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$;|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$<|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$=|Ics], Line, Tlen, Action, Alen) ->
- yystate(10, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$>|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$D|Ics], Line, Tlen, Action, Alen) ->
- yystate(2, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$E|Ics], Line, Tlen, Action, Alen) ->
- yystate(41, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$I|Ics], Line, Tlen, Action, Alen) ->
- yystate(39, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$N|Ics], Line, Tlen, Action, Alen) ->
- yystate(23, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$S|Ics], Line, Tlen, Action, Alen) ->
- yystate(7, Ics, Line, Tlen+1, Action, Alen);
+ {17,Tlen,Ics,Line,47};
yystate(46, [$T|Ics], Line, Tlen, Action, Alen) ->
- yystate(12, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$U|Ics], Line, Tlen, Action, Alen) ->
- yystate(40, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$V|Ics], Line, Tlen, Action, Alen) ->
- yystate(28, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$[|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [$]|Ics], Line, Tlen, Action, Alen) ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
- yystate(42, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $\s ->
- yystate(42, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $0, C =< $9 ->
- yystate(14, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $C ->
- yystate(40, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $H ->
- yystate(40, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $J, C =< $M ->
- yystate(40, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $R ->
- yystate(40, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $W, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $a, C =< $z ->
- yystate(44, Ics, Line, Tlen+1, Action, Alen);
-yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= ${, C =< $} ->
- yystate(48, Ics, Line, Tlen+1, Action, Alen);
+ yystate(50, Ics, Line, Tlen+1, 17, Tlen);
+yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $S ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(46, [C|Ics], Line, Tlen, Action, Alen) when C >= $U, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(46, Ics, Line, Tlen, Action, Alen) ->
- {Action,Alen,Tlen,Ics,Line,46};
-yystate(45, [$E|Ics], Line, Tlen, Action, Alen) ->
- yystate(49, Ics, Line, Tlen+1, 16, Tlen);
-yystate(45, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(45, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,46};
+yystate(45, [$\n|Ics], Line, Tlen, Action, Alen) ->
+ yystate(45, Ics, Line+1, Tlen+1, Action, Alen);
+yystate(45, [$"|Ics], Line, Tlen, Action, Alen) ->
+ yystate(41, Ics, Line, Tlen+1, Action, Alen);
+yystate(45, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
+ yystate(45, Ics, Line, Tlen+1, Action, Alen);
+yystate(45, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $! ->
+ yystate(45, Ics, Line, Tlen+1, Action, Alen);
+yystate(45, [C|Ics], Line, Tlen, Action, Alen) when C >= $#, C =< $ÿ ->
+ yystate(45, Ics, Line, Tlen+1, Action, Alen);
yystate(45, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,45};
-yystate(44, [$_|Ics], Line, Tlen, Action, Alen) ->
- yystate(44, Ics, Line, Tlen+1, 1, Tlen);
-yystate(44, [C|Ics], Line, Tlen, Action, Alen) when C >= $0, C =< $9 ->
- yystate(44, Ics, Line, Tlen+1, 1, Tlen);
-yystate(44, [C|Ics], Line, Tlen, Action, Alen) when C >= $@, C =< $Z ->
- yystate(44, Ics, Line, Tlen+1, 1, Tlen);
-yystate(44, [C|Ics], Line, Tlen, Action, Alen) when C >= $a, C =< $z ->
- yystate(44, Ics, Line, Tlen+1, 1, Tlen);
+ {Action,Alen,Tlen,Ics,Line,45};
+yystate(44, [$A|Ics], Line, Tlen, Action, Alen) ->
+ yystate(40, Ics, Line, Tlen+1, 17, Tlen);
+yystate(44, [C|Ics], Line, Tlen, Action, Alen) when C >= $B, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(44, Ics, Line, Tlen, Action, Alen) ->
- {1,Tlen,Ics,Line,44};
+ {17,Tlen,Ics,Line,44};
yystate(43, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 5, Tlen);
+ yystate(47, Ics, Line, Tlen+1, 2, Tlen);
yystate(43, Ics, Line, Tlen, Action, Alen) ->
- {5,Tlen,Ics,Line,43};
-yystate(42, [$\n|Ics], Line, Tlen, Action, Alen) ->
- yystate(42, Ics, Line+1, Tlen+1, 14, Tlen);
-yystate(42, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
- yystate(42, Ics, Line, Tlen+1, 14, Tlen);
-yystate(42, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $\s ->
- yystate(42, Ics, Line, Tlen+1, 14, Tlen);
+ {2,Tlen,Ics,Line,43};
+yystate(42, [$N|Ics], Line, Tlen, Action, Alen) ->
+ yystate(46, Ics, Line, Tlen+1, 17, Tlen);
+yystate(42, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $M ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(42, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(42, Ics, Line, Tlen, Action, Alen) ->
- {14,Tlen,Ics,Line,42};
-yystate(41, [$V|Ics], Line, Tlen, Action, Alen) ->
- yystate(45, Ics, Line, Tlen+1, 16, Tlen);
-yystate(41, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $U ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(41, [C|Ics], Line, Tlen, Action, Alen) when C >= $W, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,42};
yystate(41, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,41};
-yystate(40, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {10,Tlen,Ics,Line};
+yystate(40, [$M|Ics], Line, Tlen, Action, Alen) ->
+ yystate(36, Ics, Line, Tlen+1, 17, Tlen);
+yystate(40, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $L ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(40, [C|Ics], Line, Tlen, Action, Alen) when C >= $N, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(40, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,40};
+ {17,Tlen,Ics,Line,40};
yystate(39, [$N|Ics], Line, Tlen, Action, Alen) ->
- yystate(35, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(43, Ics, Line, Tlen+1, 17, Tlen);
yystate(39, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $M ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(39, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(39, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,39};
-yystate(38, [$\n|Ics], Line, Tlen, Action, Alen) ->
- yystate(38, Ics, Line+1, Tlen+1, Action, Alen);
-yystate(38, [$"|Ics], Line, Tlen, Action, Alen) ->
- yystate(34, Ics, Line, Tlen+1, Action, Alen);
-yystate(38, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
- yystate(38, Ics, Line, Tlen+1, Action, Alen);
-yystate(38, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $! ->
- yystate(38, Ics, Line, Tlen+1, Action, Alen);
-yystate(38, [C|Ics], Line, Tlen, Action, Alen) when C >= $#, C =< $ÿ ->
- yystate(38, Ics, Line, Tlen+1, Action, Alen);
+ {17,Tlen,Ics,Line,39};
+yystate(38, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(42, Ics, Line, Tlen+1, 17, Tlen);
+yystate(38, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(38, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(38, Ics, Line, Tlen, Action, Alen) ->
- {Action,Alen,Tlen,Ics,Line,38};
-yystate(37, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 8, Tlen);
+ {17,Tlen,Ics,Line,38};
+yystate(37, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
+ yystate(37, Ics, Line, Tlen+1, 16, Tlen);
+yystate(37, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $ÿ ->
+ yystate(37, Ics, Line, Tlen+1, 16, Tlen);
yystate(37, Ics, Line, Tlen, Action, Alen) ->
- {8,Tlen,Ics,Line,37};
-yystate(36, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 2, Tlen);
+ {16,Tlen,Ics,Line,37};
+yystate(36, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(32, Ics, Line, Tlen+1, 17, Tlen);
+yystate(36, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(36, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(36, Ics, Line, Tlen, Action, Alen) ->
- {2,Tlen,Ics,Line,36};
-yystate(35, [$F|Ics], Line, Tlen, Action, Alen) ->
- yystate(31, Ics, Line, Tlen+1, 16, Tlen);
-yystate(35, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $E ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(35, [C|Ics], Line, Tlen, Action, Alen) when C >= $G, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,36};
+yystate(35, [$S|Ics], Line, Tlen, Action, Alen) ->
+ yystate(39, Ics, Line, Tlen+1, 17, Tlen);
+yystate(35, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $R ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(35, [C|Ics], Line, Tlen, Action, Alen) when C >= $T, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(35, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,35};
+ {17,Tlen,Ics,Line,35};
+yystate(34, [$V|Ics], Line, Tlen, Action, Alen) ->
+ yystate(38, Ics, Line, Tlen+1, 17, Tlen);
+yystate(34, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $U ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(34, [C|Ics], Line, Tlen, Action, Alen) when C >= $W, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(34, Ics, Line, Tlen, Action, Alen) ->
- {9,Tlen,Ics,Line};
-yystate(33, [$N|Ics], Line, Tlen, Action, Alen) ->
- yystate(37, Ics, Line, Tlen+1, 16, Tlen);
-yystate(33, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $M ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(33, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,34};
+yystate(33, [$\n|Ics], Line, Tlen, Action, Alen) ->
+ yystate(29, Ics, Line+1, Tlen+1, Action, Alen);
+yystate(33, [$%|Ics], Line, Tlen, Action, Alen) ->
+ yystate(25, Ics, Line, Tlen+1, Action, Alen);
+yystate(33, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
+ yystate(29, Ics, Line, Tlen+1, Action, Alen);
+yystate(33, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $\s ->
+ yystate(29, Ics, Line, Tlen+1, Action, Alen);
yystate(33, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,33};
-yystate(32, [$N|Ics], Line, Tlen, Action, Alen) ->
- yystate(36, Ics, Line, Tlen+1, 16, Tlen);
-yystate(32, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $M ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(32, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {Action,Alen,Tlen,Ics,Line,33};
+yystate(32, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 6, Tlen);
yystate(32, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,32};
-yystate(31, [$O|Ics], Line, Tlen, Action, Alen) ->
- yystate(27, Ics, Line, Tlen+1, 16, Tlen);
-yystate(31, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $N ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(31, [C|Ics], Line, Tlen, Action, Alen) when C >= $P, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {6,Tlen,Ics,Line,32};
+yystate(31, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 3, Tlen);
yystate(31, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,31};
-yystate(30, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
- yystate(30, Ics, Line, Tlen+1, 15, Tlen);
-yystate(30, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $ÿ ->
- yystate(30, Ics, Line, Tlen+1, 15, Tlen);
+ {3,Tlen,Ics,Line,31};
+yystate(30, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 8, Tlen);
yystate(30, Ics, Line, Tlen, Action, Alen) ->
- {15,Tlen,Ics,Line,30};
-yystate(29, [$O|Ics], Line, Tlen, Action, Alen) ->
- yystate(33, Ics, Line, Tlen+1, 16, Tlen);
-yystate(29, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $N ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(29, [C|Ics], Line, Tlen, Action, Alen) when C >= $P, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {8,Tlen,Ics,Line,30};
yystate(29, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,29};
-yystate(28, [$S|Ics], Line, Tlen, Action, Alen) ->
- yystate(32, Ics, Line, Tlen+1, 16, Tlen);
-yystate(28, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $R ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(28, [C|Ics], Line, Tlen, Action, Alen) when C >= $T, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {13,Tlen,Ics,Line};
+yystate(28, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(24, Ics, Line, Tlen+1, 17, Tlen);
+yystate(28, [$T|Ics], Line, Tlen, Action, Alen) ->
+ yystate(3, Ics, Line, Tlen+1, 17, Tlen);
+yystate(28, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(28, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $S ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(28, [C|Ics], Line, Tlen, Action, Alen) when C >= $U, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(28, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,28};
-yystate(27, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 7, Tlen);
+ {17,Tlen,Ics,Line,28};
+yystate(27, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(31, Ics, Line, Tlen+1, 17, Tlen);
+yystate(27, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(27, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(27, Ics, Line, Tlen, Action, Alen) ->
- {7,Tlen,Ics,Line,27};
-yystate(26, [$\n|Ics], Line, Tlen, Action, Alen) ->
- yystate(22, Ics, Line+1, Tlen+1, Action, Alen);
-yystate(26, [$%|Ics], Line, Tlen, Action, Alen) ->
- yystate(18, Ics, Line, Tlen+1, Action, Alen);
-yystate(26, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
- yystate(22, Ics, Line, Tlen+1, Action, Alen);
-yystate(26, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $\s ->
- yystate(22, Ics, Line, Tlen+1, Action, Alen);
+ {17,Tlen,Ics,Line,27};
+yystate(26, [$N|Ics], Line, Tlen, Action, Alen) ->
+ yystate(30, Ics, Line, Tlen+1, 17, Tlen);
+yystate(26, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $M ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(26, [C|Ics], Line, Tlen, Action, Alen) when C >= $O, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(26, Ics, Line, Tlen, Action, Alen) ->
- {Action,Alen,Tlen,Ics,Line,26};
-yystate(25, [$I|Ics], Line, Tlen, Action, Alen) ->
- yystate(29, Ics, Line, Tlen+1, 16, Tlen);
-yystate(25, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $H ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(25, [C|Ics], Line, Tlen, Action, Alen) when C >= $J, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,26};
+yystate(25, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
+ yystate(25, Ics, Line, Tlen+1, 14, Tlen);
+yystate(25, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $ÿ ->
+ yystate(25, Ics, Line, Tlen+1, 14, Tlen);
yystate(25, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,25};
-yystate(24, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 3, Tlen);
+ {14,Tlen,Ics,Line,25};
+yystate(24, [$R|Ics], Line, Tlen, Action, Alen) ->
+ yystate(20, Ics, Line, Tlen+1, 17, Tlen);
+yystate(24, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Q ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(24, [C|Ics], Line, Tlen, Action, Alen) when C >= $S, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(24, Ics, Line, Tlen, Action, Alen) ->
- {3,Tlen,Ics,Line,24};
-yystate(23, [$A|Ics], Line, Tlen, Action, Alen) ->
- yystate(19, Ics, Line, Tlen+1, 16, Tlen);
-yystate(23, [C|Ics], Line, Tlen, Action, Alen) when C >= $B, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,24};
+yystate(23, [$P|Ics], Line, Tlen, Action, Alen) ->
+ yystate(27, Ics, Line, Tlen+1, 17, Tlen);
+yystate(23, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $O ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(23, [C|Ics], Line, Tlen, Action, Alen) when C >= $Q, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(23, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,23};
+ {17,Tlen,Ics,Line,23};
+yystate(22, [$O|Ics], Line, Tlen, Action, Alen) ->
+ yystate(26, Ics, Line, Tlen+1, 17, Tlen);
+yystate(22, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $N ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(22, [C|Ics], Line, Tlen, Action, Alen) when C >= $P, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(22, Ics, Line, Tlen, Action, Alen) ->
- {12,Tlen,Ics,Line};
-yystate(21, [$T|Ics], Line, Tlen, Action, Alen) ->
- yystate(25, Ics, Line, Tlen+1, 16, Tlen);
-yystate(21, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $S ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(21, [C|Ics], Line, Tlen, Action, Alen) when C >= $U, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,22};
+yystate(21, [C|Ics], Line, Tlen, Action, Alen) when C >= $0, C =< $9 ->
+ yystate(21, Ics, Line, Tlen+1, 0, Tlen);
yystate(21, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,21};
-yystate(20, [$E|Ics], Line, Tlen, Action, Alen) ->
- yystate(24, Ics, Line, Tlen+1, 16, Tlen);
-yystate(20, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(20, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {0,Tlen,Ics,Line,21};
+yystate(20, [$V|Ics], Line, Tlen, Action, Alen) ->
+ yystate(16, Ics, Line, Tlen+1, 17, Tlen);
+yystate(20, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $U ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(20, [C|Ics], Line, Tlen, Action, Alen) when C >= $W, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(20, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,20};
-yystate(19, [$M|Ics], Line, Tlen, Action, Alen) ->
- yystate(15, Ics, Line, Tlen+1, 16, Tlen);
-yystate(19, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $L ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(19, [C|Ics], Line, Tlen, Action, Alen) when C >= $N, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,20};
+yystate(19, [$Y|Ics], Line, Tlen, Action, Alen) ->
+ yystate(23, Ics, Line, Tlen+1, 17, Tlen);
+yystate(19, [$Z|Ics], Line, Tlen, Action, Alen) ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(19, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $X ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(19, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,19};
-yystate(18, [C|Ics], Line, Tlen, Action, Alen) when C >= $\000, C =< $\t ->
- yystate(18, Ics, Line, Tlen+1, 13, Tlen);
-yystate(18, [C|Ics], Line, Tlen, Action, Alen) when C >= $\v, C =< $ÿ ->
- yystate(18, Ics, Line, Tlen+1, 13, Tlen);
+ {17,Tlen,Ics,Line,19};
+yystate(18, [$I|Ics], Line, Tlen, Action, Alen) ->
+ yystate(22, Ics, Line, Tlen+1, 17, Tlen);
+yystate(18, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $H ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(18, [C|Ics], Line, Tlen, Action, Alen) when C >= $J, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(18, Ics, Line, Tlen, Action, Alen) ->
- {13,Tlen,Ics,Line,18};
-yystate(17, [$P|Ics], Line, Tlen, Action, Alen) ->
- yystate(21, Ics, Line, Tlen+1, 16, Tlen);
-yystate(17, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $O ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(17, [C|Ics], Line, Tlen, Action, Alen) when C >= $Q, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,18};
+yystate(17, [$>|Ics], Line, Tlen, Action, Alen) ->
+ yystate(13, Ics, Line, Tlen+1, 12, Tlen);
yystate(17, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,17};
-yystate(16, [$P|Ics], Line, Tlen, Action, Alen) ->
- yystate(20, Ics, Line, Tlen+1, 16, Tlen);
-yystate(16, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $O ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(16, [C|Ics], Line, Tlen, Action, Alen) when C >= $Q, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {12,Tlen,Ics,Line,17};
+yystate(16, [$I|Ics], Line, Tlen, Action, Alen) ->
+ yystate(12, Ics, Line, Tlen+1, 17, Tlen);
+yystate(16, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $H ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(16, [C|Ics], Line, Tlen, Action, Alen) when C >= $J, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(16, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,16};
-yystate(15, [$E|Ics], Line, Tlen, Action, Alen) ->
- yystate(11, Ics, Line, Tlen+1, 16, Tlen);
-yystate(15, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(15, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,16};
+yystate(15, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 4, Tlen);
yystate(15, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,15};
-yystate(14, [C|Ics], Line, Tlen, Action, Alen) when C >= $0, C =< $9 ->
- yystate(14, Ics, Line, Tlen+1, 0, Tlen);
+ {4,Tlen,Ics,Line,15};
+yystate(14, [$T|Ics], Line, Tlen, Action, Alen) ->
+ yystate(18, Ics, Line, Tlen+1, 17, Tlen);
+yystate(14, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $S ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(14, [C|Ics], Line, Tlen, Action, Alen) when C >= $U, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(14, Ics, Line, Tlen, Action, Alen) ->
- {0,Tlen,Ics,Line,14};
-yystate(13, [$I|Ics], Line, Tlen, Action, Alen) ->
- yystate(17, Ics, Line, Tlen+1, 16, Tlen);
-yystate(13, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $H ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(13, [C|Ics], Line, Tlen, Action, Alen) when C >= $J, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,14};
yystate(13, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,13};
-yystate(12, [$Y|Ics], Line, Tlen, Action, Alen) ->
- yystate(16, Ics, Line, Tlen+1, 16, Tlen);
-yystate(12, [$Z|Ics], Line, Tlen, Action, Alen) ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(12, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $X ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {11,Tlen,Ics,Line};
+yystate(12, [$A|Ics], Line, Tlen, Action, Alen) ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(12, [$B|Ics], Line, Tlen, Action, Alen) ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(12, [$C|Ics], Line, Tlen, Action, Alen) ->
+ yystate(8, Ics, Line, Tlen+1, 17, Tlen);
+yystate(12, [C|Ics], Line, Tlen, Action, Alen) when C >= $D, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(12, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,12};
-yystate(11, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 6, Tlen);
+ {17,Tlen,Ics,Line,12};
+yystate(11, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(15, Ics, Line, Tlen+1, 17, Tlen);
+yystate(11, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(11, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(11, Ics, Line, Tlen, Action, Alen) ->
- {6,Tlen,Ics,Line,11};
-yystate(10, [$>|Ics], Line, Tlen, Action, Alen) ->
- yystate(6, Ics, Line, Tlen+1, 11, Tlen);
+ {17,Tlen,Ics,Line,11};
+yystate(10, [$P|Ics], Line, Tlen, Action, Alen) ->
+ yystate(14, Ics, Line, Tlen+1, 17, Tlen);
+yystate(10, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $O ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(10, [C|Ics], Line, Tlen, Action, Alen) when C >= $Q, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(10, Ics, Line, Tlen, Action, Alen) ->
- {11,Tlen,Ics,Line,10};
-yystate(9, [$R|Ics], Line, Tlen, Action, Alen) ->
- yystate(13, Ics, Line, Tlen+1, 16, Tlen);
-yystate(9, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Q ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(9, [C|Ics], Line, Tlen, Action, Alen) when C >= $S, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,10};
+yystate(9, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(5, Ics, Line, Tlen+1, 17, Tlen);
+yystate(9, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(9, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(9, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,9};
-yystate(8, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 4, Tlen);
+ {17,Tlen,Ics,Line,9};
+yystate(8, [$E|Ics], Line, Tlen, Action, Alen) ->
+ yystate(4, Ics, Line, Tlen+1, 17, Tlen);
+yystate(8, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(8, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(8, Ics, Line, Tlen, Action, Alen) ->
- {4,Tlen,Ics,Line,8};
+ {17,Tlen,Ics,Line,8};
yystate(7, [$T|Ics], Line, Tlen, Action, Alen) ->
- yystate(3, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(11, Ics, Line, Tlen+1, 17, Tlen);
yystate(7, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $S ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(7, [C|Ics], Line, Tlen, Action, Alen) when C >= $U, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(7, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,7};
+ {17,Tlen,Ics,Line,7};
+yystate(6, [$I|Ics], Line, Tlen, Action, Alen) ->
+ yystate(10, Ics, Line, Tlen+1, 17, Tlen);
+yystate(6, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $H ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(6, [C|Ics], Line, Tlen, Action, Alen) when C >= $J, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(6, Ics, Line, Tlen, Action, Alen) ->
- {10,Tlen,Ics,Line};
-yystate(5, [$A|Ics], Line, Tlen, Action, Alen) ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(5, [$B|Ics], Line, Tlen, Action, Alen) ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(5, [$C|Ics], Line, Tlen, Action, Alen) ->
- yystate(9, Ics, Line, Tlen+1, 16, Tlen);
-yystate(5, [C|Ics], Line, Tlen, Action, Alen) when C >= $D, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,6};
+yystate(5, [$S|Ics], Line, Tlen, Action, Alen) ->
+ yystate(1, Ics, Line, Tlen+1, 17, Tlen);
+yystate(5, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $R ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(5, [C|Ics], Line, Tlen, Action, Alen) when C >= $T, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(5, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,5};
-yystate(4, [$E|Ics], Line, Tlen, Action, Alen) ->
- yystate(8, Ics, Line, Tlen+1, 16, Tlen);
-yystate(4, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(4, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,5};
+yystate(4, [$S|Ics], Line, Tlen, Action, Alen) ->
+ yystate(0, Ics, Line, Tlen+1, 17, Tlen);
+yystate(4, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $R ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(4, [C|Ics], Line, Tlen, Action, Alen) when C >= $T, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(4, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,4};
+ {17,Tlen,Ics,Line,4};
yystate(3, [$A|Ics], Line, Tlen, Action, Alen) ->
- yystate(0, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(7, Ics, Line, Tlen+1, 17, Tlen);
yystate(3, [C|Ics], Line, Tlen, Action, Alen) when C >= $B, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(3, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,3};
-yystate(2, [$E|Ics], Line, Tlen, Action, Alen) ->
- yystate(1, Ics, Line, Tlen+1, 16, Tlen);
-yystate(2, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $D ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(2, [C|Ics], Line, Tlen, Action, Alen) when C >= $F, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,3};
+yystate(2, [$R|Ics], Line, Tlen, Action, Alen) ->
+ yystate(6, Ics, Line, Tlen+1, 17, Tlen);
+yystate(2, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Q ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(2, [C|Ics], Line, Tlen, Action, Alen) when C >= $S, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(2, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,2};
-yystate(1, [$S|Ics], Line, Tlen, Action, Alen) ->
- yystate(5, Ics, Line, Tlen+1, 16, Tlen);
-yystate(1, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $R ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(1, [C|Ics], Line, Tlen, Action, Alen) when C >= $T, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,2};
+yystate(1, [$A|Ics], Line, Tlen, Action, Alen) ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(1, [$B|Ics], Line, Tlen, Action, Alen) ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
+yystate(1, [$C|Ics], Line, Tlen, Action, Alen) ->
+ yystate(2, Ics, Line, Tlen+1, 17, Tlen);
+yystate(1, [C|Ics], Line, Tlen, Action, Alen) when C >= $D, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 17, Tlen);
yystate(1, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,1};
-yystate(0, [$T|Ics], Line, Tlen, Action, Alen) ->
- yystate(4, Ics, Line, Tlen+1, 16, Tlen);
-yystate(0, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $S ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
-yystate(0, [C|Ics], Line, Tlen, Action, Alen) when C >= $U, C =< $Z ->
- yystate(40, Ics, Line, Tlen+1, 16, Tlen);
+ {17,Tlen,Ics,Line,1};
+yystate(0, [C|Ics], Line, Tlen, Action, Alen) when C >= $A, C =< $Z ->
+ yystate(47, Ics, Line, Tlen+1, 9, Tlen);
yystate(0, Ics, Line, Tlen, Action, Alen) ->
- {16,Tlen,Ics,Line,0};
+ {9,Tlen,Ics,Line,0};
yystate(S, Ics, Line, Tlen, Action, Alen) ->
{Action,Alen,Tlen,Ics,Line,S}.
@@ -648,21 +706,23 @@ yyaction(7, YYlen, YYtcs, YYline) ->
yyaction(8, YYlen, YYtcs, YYline) ->
{token,{description,YYline}};
yyaction(9, YYlen, YYtcs, YYline) ->
+ {token,{services,YYline}};
+yyaction(10, YYlen, YYtcs, YYline) ->
YYtext = yypre(YYtcs, YYlen),
S = lists:sublist(YYtext,2,length(YYtext) - 2),
{token,{string,YYline,S}};
-yyaction(10, YYlen, YYtcs, YYline) ->
- {token,{'=>',YYline}};
yyaction(11, YYlen, YYtcs, YYline) ->
+ {token,{'=>',YYline}};
+yyaction(12, YYlen, YYtcs, YYline) ->
YYtext = yypre(YYtcs, YYlen),
{token,{list_to_atom(YYtext),YYline}};
-yyaction(12, YYlen, YYtcs, YYline) ->
- {end_token,{dot,YYline}};
yyaction(13, YYlen, YYtcs, YYline) ->
{end_token,{dot,YYline}};
-yyaction(14, YYlen, YYtcs, YYline) -> skip_token;
-yyaction(15, YYlen, YYtcs, YYline) ->
- skip_token;
+yyaction(14, YYlen, YYtcs, YYline) ->
+ {end_token,{dot,YYline}};
+yyaction(15, YYlen, YYtcs, YYline) -> skip_token;
yyaction(16, YYlen, YYtcs, YYline) ->
skip_token;
+yyaction(17, YYlen, YYtcs, YYline) ->
+ skip_token;
yyaction(_, _, _, _) -> error.
View
BIN contract_manager.beam
Binary file not shown.
View
94 contract_manager.erl
@@ -2,9 +2,13 @@
-export([start/0]).
-import(contracts, [checkIn/3, checkOut/4, checkCallback/3]).
-
+-import(lists, [map/2, member/2]).
-include("contract.hrl").
+-define(S(X), {'#S',X}).
+s(X) -> {'#S', X}.
+
+
% Client Contract Server
% | | |
@@ -40,9 +44,6 @@
%% Mod is our callback module
%% Data is the local state of the handler
-s(X) ->
- {'#S', X}.
-
start() ->
spawn_link(fun() -> wait() end).
@@ -72,14 +73,45 @@ loop(Client, Server, State1, Mod) ->
%% io:format("contract_manager ~p waiting for Driver=~p in state:~p ~n",
%% [Client, self(), State1]),
receive
+ {Client, help} ->
+ Client ! {self(),s(help())},
+ loop(Client, Server, State1, Mod);
{Client, info} ->
- Client ! {self(), {infoReply, s(Mod:contract_info())}},
+ Client ! {self(),s(Mod:contract_info())},
loop(Client, Server, State1, Mod);
{Client, description} ->
- Client ! {self(),{descriptionReply,s(Mod:contract_description())}},
+ Client ! {self(),s(Mod:contract_description())},
+ loop(Client, Server, State1, Mod);
+ {Client, services} ->
+ S = Mod:contract_services(),
+ S1 = map(fun(I) -> s(I) end, S),
+ Client ! {self(), {services, S1}},
+ loop(Client, Server, State1, Mod);
+ {Client, contract} ->
+ S = contract(Mod),
+ Client ! {self(), {contract, S}},
+ loop(Client, Server, State1, Mod);
+ {Client, {start, ?S(Service)}} ->
+ S = Mod:contract_services(),
+ case member(Service, S) of
+ true ->
+ Server ! {self(), {startService, Service}},
+ receive
+ {Server, {accept, HandlerMod, ManagerPid}} ->
+ Info = HandlerMod:contract_info(),
+ Client ! {self(), {ok, s(Info)}},
+ loop(Client, Server, start, HandlerMod);
+ {Server, {reject, Why}} ->
+ Client ! {self(), {error,Why}},
+ loop(Client, Server, State1, Mod)
+ end;
+ false ->
+ Client ! {self(), noSuchService},
+ loop(Client, Server, State1, Mod)
+ end,
loop(Client, Server, State1, Mod);
{Client, expect} ->
- Client ! {self(), {expectReply, get_expect(State1, Mod)}},
+ Client ! {self(),{expectReply, get_expect(State1, Mod)}},
loop(Client, Server, State1, Mod);
{Client, state} ->
Client ! {self(), {stateReply, State1}},
@@ -117,6 +149,10 @@ do_rpc(Client, Server, State1, Mod, Q) ->
[] ->
io:format("** Client broke contract ~p in State:~p send:~p~n",
[Mod, State1, Q]),
+ Expect = Mod:contract_state(State1),
+ Client ! {self(),
+ {clientBrokeContract, {state, State1}, Expect}},
+ io:format("Expecting:~p~n",[Expect]),
exit(fatal);
FSM2 ->
%% io:format("contract yes FSM2=~p~n", [FSM2]),
@@ -154,7 +190,49 @@ get_expect(State,Mod) ->
T = Mod:contract_state(State),
[Type||{input, Type, _} <- T].
-
+contract(Mod) ->
+ {{name,s(Mod:contract_name())},
+ {info, s(Mod:contract_info())},
+ {description, s(Mod:contract_description())},
+ {services, map(fun(I) -> s(I) end, Mod:contract_services())},
+ {states,
+ map(fun(S) ->
+ {S, Mod:contract_state(S)}
+ end, Mod:contract_states())},
+ {types,
+ map(fun(S) ->
+ {S, Mod:contract_type(S)}
+ end, Mod:contract_types())}}.
+
+help() ->
+ "\n\n
+This server speaks Universal Binary Format 1.0
+
+See http://www.sics.se/~joe/ubf.html
+
+UBF servers are introspective - which means the
+servers can describe themselves. The following commands are
+always available:
+
+'help'$ This information
+'info'$ Short information about the current service
+'description'$ Long information about the current service
+'services'$ A list of available services
+'contract'$ Return the service contract
+ (Note this is encoded in UBF)
+
+To start a service:
+
+{'start', \"Name\"} Name should be one of the names in the
+ services list
+
+Warning without reading the documentation you might find the output from
+some of these commands difficult to understand :-)
+
+".
+
+
+
View
BIN contract_parser.beam
Binary file not shown.
View
11 contract_parser.erl
@@ -56,10 +56,13 @@ make_code(C) ->
StateNames = map(fun({State,_}) -> State end, C#contract.transitions),
F7 = {function,0,contract_states,0,
[{clause,0,[],[],[erl_parse:abstract(StateNames, 0)]}]},
- Funcs = [F1,F2,F3,F4,F5,F6,F7],
+ F8 = {function,0,contract_services,0,
+ [{clause,0,[],[],[erl_parse:abstract(C#contract.services)]}]},
+ Funcs = [F1,F2,F3,F4,F5,F6,F7,F8],
Exports = {attribute,0,export,
[{contract_name,0},{contract_info,0},
{contract_description,0},
+ {contract_services,0},
{contract_types,0},
{contract_states,0},
{contract_type,1},
@@ -131,7 +134,7 @@ file1(F) ->
E -> E
end.
-preDefinedTypes() -> [int, string, atom, binary, term, void].
+preDefinedTypes() -> [int, string, constant, binary, term, void].
pass2(F, P) ->
Name = require(one, name, P),
@@ -140,8 +143,10 @@ pass2(F, P) ->
Description = require(one, description, P),
Types = require(many, type, P),
Trans = require(many, transition, P),
+ Services = require(one, services, P),
C = #contract{name=Name, vsn=Vsn, info=Info, description=
- Description, types=Types, transitions=Trans},
+ Description, services=Services,
+ types=Types, transitions=Trans},
pass3(C).
require(Multiplicity, Tag, P) ->
View
BIN contract_yecc.beam
Binary file not shown.
View
693 contract_yecc.erl
@@ -122,16 +122,18 @@ yeccpars2(0, '+', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 1, [0 | __Ss], [__T | __Stack]);
yeccpars2(0, _, _, _, __T, _, _) ->
yeccerror(__T);
+yeccpars2(1, services, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 6, [1 | __Ss], [__T | __Stack]);
yeccpars2(1, description, __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 3, [1 | __Ss], [__T | __Stack]);
yeccpars2(1, info, __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 4, [1 | __Ss], [__T | __Stack]);
yeccpars2(1, state, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 6, [1 | __Ss], [__T | __Stack]);
-yeccpars2(1, typeKwd, __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 7, [1 | __Ss], [__T | __Stack]);
-yeccpars2(1, vsn, __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(1, typeKwd, __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 8, [1 | __Ss], [__T | __Stack]);
+yeccpars2(1, vsn, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 9, [1 | __Ss], [__T | __Stack]);
yeccpars2(1, name, __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 5, [1 | __Ss], [__T | __Stack]);
yeccpars2(1, _, _, _, __T, _, _) ->
@@ -141,381 +143,384 @@ yeccpars2(2, '$end', _, __Stack, _, _, _) ->
yeccpars2(2, _, _, _, __T, _, _) ->
yeccerror(__T);
yeccpars2(3, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 72, [3 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 80, [3 | __Ss], [__T | __Stack]);
yeccpars2(3, _, _, _, __T, _, _) ->
yeccerror(__T);
yeccpars2(4, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 68, [4 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 76, [4 | __Ss], [__T | __Stack]);
yeccpars2(4, _, _, _, __T, _, _) ->
yeccerror(__T);
yeccpars2(5, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 64, [5 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 72, [5 | __Ss], [__T | __Stack]);
yeccpars2(5, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(6, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 46, [6 | __Ss], [__T | __Stack]);
+yeccpars2(6, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 65, [6 | __Ss], [__T | __Stack]);
yeccpars2(6, _, _, _, __T, _, _) ->
yeccerror(__T);
yeccpars2(7, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 13, [7 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 47, [7 | __Ss], [__T | __Stack]);
yeccpars2(7, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(8, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 9, [8 | __Ss], [__T | __Stack]);
+yeccpars2(8, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 14, [8 | __Ss], [__T | __Stack]);
yeccpars2(8, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(9, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(9, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 10, [9 | __Ss], [__T | __Stack]);
yeccpars2(9, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(10, ')', __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(10, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 11, [10 | __Ss], [__T | __Stack]);
yeccpars2(10, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(11, dot, __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(11, ')', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 12, [11 | __Ss], [__T | __Stack]);
yeccpars2(11, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(12, __Cat, __Ss, [__6,__5,__4,__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
+yeccpars2(12, dot, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 13, [12 | __Ss], [__T | __Stack]);
+yeccpars2(12, _, _, _, __T, _, _) ->
+ yeccerror(__T);
+yeccpars2(13, __Cat, __Ss, [__6,__5,__4,__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
__Val = {vsn,unwrap(__4)},
__Nss = lists:nthtail(5, __Ss),
yeccpars2(yeccgoto(form, hd(__Nss)), __Cat, __Nss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(13, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 14, [13 | __Ss], [__T | __Stack]);
-yeccpars2(13, _, _, _, __T, _, _) ->
- yeccerror(__T);
-yeccpars2(14, ')', __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(14, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 15, [14 | __Ss], [__T | __Stack]);
yeccpars2(14, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(15, '=', __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(15, ')', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 16, [15 | __Ss], [__T | __Stack]);
yeccpars2(15, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(16, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 22, [16 | __Ss], [__T | __Stack]);
-yeccpars2(16, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 20, [16 | __Ss], [__T | __Stack]);
-yeccpars2(16, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 19, [16 | __Ss], [__T | __Stack]);
-yeccpars2(16, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(16, '=', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 17, [16 | __Ss], [__T | __Stack]);
-yeccpars2(16, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 24, [16 | __Ss], [__T | __Stack]);
yeccpars2(16, _, _, _, __T, _, _) ->
yeccerror(__T);
yeccpars2(17, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 22, [17 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 23, [17 | __Ss], [__T | __Stack]);
yeccpars2(17, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 20, [17 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 21, [17 | __Ss], [__T | __Stack]);
yeccpars2(17, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 19, [17 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 20, [17 | __Ss], [__T | __Stack]);
yeccpars2(17, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 17, [17 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 18, [17 | __Ss], [__T | __Stack]);
yeccpars2(17, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 24, [17 | __Ss], [__T | __Stack]);
+ yeccpars1(__Ts, __Tzr, 25, [17 | __Ss], [__T | __Stack]);
yeccpars2(17, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(18, '|', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 41, [18 | __Ss], [__T | __Stack]);
-yeccpars2(18, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(18, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 23, [18 | __Ss], [__T | __Stack]);
+yeccpars2(18, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 21, [18 | __Ss], [__T | __Stack]);
+yeccpars2(18, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 20, [18 | __Ss], [__T | __Stack]);
+yeccpars2(18, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 18, [18 | __Ss], [__T | __Stack]);
+yeccpars2(18, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 25, [18 | __Ss], [__T | __Stack]);
+yeccpars2(18, _, _, _, __T, _, _) ->
+ yeccerror(__T);
+yeccpars2(19, '|', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 42, [19 | __Ss], [__T | __Stack]);
+yeccpars2(19, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
__Val = nil,
- yeccpars2(40, __Cat, [18 | __Ss], [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(19, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 34, [19 | __Ss], [__T | __Stack]);
-yeccpars2(19, ':', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 35, [19 | __Ss], [__T | __Stack]);
-yeccpars2(19, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
- __Val = {atom,unwrap(__1)},
- yeccpars2(yeccgoto(primType, hd(__Ss)), __Cat, __Ss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(20, '.', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 31, [20 | __Ss], [__T | __Stack]);
+ yeccpars2(41, __Cat, [19 | __Ss], [__Val | __Stack], __T, __Ts, __Tzr);
+yeccpars2(20, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 35, [20 | __Ss], [__T | __Stack]);
+yeccpars2(20, ':', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 36, [20 | __Ss], [__T | __Stack]);
yeccpars2(20, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
- __Val = {integer,unwrap(__1)},
+ __Val = {constant,unwrap(__1)},
yeccpars2(yeccgoto(primType, hd(__Ss)), __Cat, __Ss, [__Val | __Stack], __T, __Ts, __Tzr);
+yeccpars2(21, '.', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 32, [21 | __Ss], [__T | __Stack]);
yeccpars2(21, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
+ __Val = {integer,unwrap(__1)},
+ yeccpars2(yeccgoto(primType, hd(__Ss)), __Cat, __Ss, [__Val | __Stack], __T, __Ts, __Tzr);
+yeccpars2(22, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
__Val = __1,
yeccpars2(yeccgoto(annotatedType, hd(__Ss)), __Cat, __Ss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(22, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
+yeccpars2(23, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
__Val = {string,unwrap(__1)},
yeccpars2(yeccgoto(primType, hd(__Ss)), __Cat, __Ss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(23, dot, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 30, [23 | __Ss], [__T | __Stack]);
-yeccpars2(23, _, _, _, __T, _, _) ->
- yeccerror(__T);
-yeccpars2(24, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 22, [24 | __Ss], [__T | __Stack]);
-yeccpars2(24, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 20, [24 | __Ss], [__T | __Stack]);
-yeccpars2(24, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 19, [24 | __Ss], [__T | __Stack]);
-yeccpars2(24, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 17, [24 | __Ss], [__T | __Stack]);
-yeccpars2(24, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 24, [24 | __Ss], [__T | __Stack]);
+yeccpars2(24, dot, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 31, [24 | __Ss], [__T | __Stack]);
yeccpars2(24, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(25, ',', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 28, [25 | __Ss], [__T | __Stack]);
-yeccpars2(25, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
+yeccpars2(25, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 23, [25 | __Ss], [__T | __Stack]);
+yeccpars2(25, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 21, [25 | __Ss], [__T | __Stack]);
+yeccpars2(25, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 20, [25 | __Ss], [__T | __Stack]);
+yeccpars2(25, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 18, [25 | __Ss], [__T | __Stack]);
+yeccpars2(25, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 25, [25 | __Ss], [__T | __Stack]);
+yeccpars2(25, _, _, _, __T, _, _) ->
+ yeccerror(__T);
+yeccpars2(26, ',', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 29, [26 | __Ss], [__T | __Stack]);
+yeccpars2(26, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
__Val = [__1],
yeccpars2(yeccgoto(typeSeq, hd(__Ss)), __Cat, __Ss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(26, '}', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 27, [26 | __Ss], [__T | __Stack]);
-yeccpars2(26, _, _, _, __T, _, _) ->
+yeccpars2(27, '}', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 28, [27 | __Ss], [__T | __Stack]);
+yeccpars2(27, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(27, __Cat, __Ss, [__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
+yeccpars2(28, __Cat, __Ss, [__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
__Val = {tuple,__2},
__Nss = lists:nthtail(2, __Ss),
yeccpars2(yeccgoto(primType, hd(__Nss)), __Cat, __Nss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(28, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 22, [28 | __Ss], [__T | __Stack]);
-yeccpars2(28, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 20, [28 | __Ss], [__T | __Stack]);
-yeccpars2(28, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 19, [28 | __Ss], [__T | __Stack]);
-yeccpars2(28, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 17, [28 | __Ss], [__T | __Stack]);
-yeccpars2(28, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 24, [28 | __Ss], [__T | __Stack]);
-yeccpars2(28, _, _, _, __T, _, _) ->
- yeccerror(__T);
-yeccpars2(29, __Cat, __Ss, [__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
+yeccpars2(29, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 23, [29 | __Ss], [__T | __Stack]);
+yeccpars2(29, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 21, [29 | __Ss], [__T | __Stack]);
+yeccpars2(29, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 20, [29 | __Ss], [__T | __Stack]);
+yeccpars2(29, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 18, [29 | __Ss], [__T | __Stack]);
+yeccpars2(29, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 25, [29 | __Ss], [__T | __Stack]);
+yeccpars2(29, _, _, _, __T, _, _) ->
+ yeccerror(__T);
+yeccpars2(30, __Cat, __Ss, [__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
__Val = [__1|__3],
__Nss = lists:nthtail(2, __Ss),
yeccpars2(yeccgoto(typeSeq, hd(__Nss)), __Cat, __Nss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(30, __Cat, __Ss, [__8,__7,__6,__5,__4,__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
+yeccpars2(31, __Cat, __Ss, [__8,__7,__6,__5,__4,__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
__Val = {type,{unwrap(__3),__7}},
__Nss = lists:nthtail(7, __Ss),
yeccpars2(yeccgoto(form, hd(__Nss)), __Cat, __Nss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(31, '.', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 32, [31 | __Ss], [__T | __Stack]);
-yeccpars2(31, _, _, _, __T, _, _) ->
- yeccerror(__T);
-yeccpars2(32, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(32, '.', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 33, [32 | __Ss], [__T | __Stack]);
yeccpars2(32, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(33, __Cat, __Ss, [__4,__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
+yeccpars2(33, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 34, [33 | __Ss], [__T | __Stack]);
+yeccpars2(33, _, _, _, __T, _, _) ->
+ yeccerror(__T);
+yeccpars2(34, __Cat, __Ss, [__4,__3,__2,__1|__Stack], __T, __Ts, __Tzr) ->
__Val = {range,unwrap(__1),unwrap(__4)},
__Nss = lists:nthtail(3, __Ss),
yeccpars2(yeccgoto(primType, hd(__Nss)), __Cat, __Nss, [__Val | __Stack], __T, __Ts, __Tzr);
-yeccpars2(34, ')', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 39, [34 | __Ss], [__T | __Stack]);
-yeccpars2(34, _, _, _, __T, _, _) ->
- yeccerror(__T);
-yeccpars2(35, ':', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 36, [35 | __Ss], [__T | __Stack]);
+yeccpars2(35, ')', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 40, [35 | __Ss], [__T | __Stack]);
yeccpars2(35, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(36, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 22, [36 | __Ss], [__T | __Stack]);
-yeccpars2(36, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 20, [36 | __Ss], [__T | __Stack]);
-yeccpars2(36, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
+yeccpars2(36, ':', __Ss, __Stack, __T, __Ts, __Tzr) ->
yeccpars1(__Ts, __Tzr, 37, [36 | __Ss], [__T | __Stack]);
-yeccpars2(36, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 17, [36 | __Ss], [__T | __Stack]);
-yeccpars2(36, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 24, [36 | __Ss], [__T | __Stack]);
yeccpars2(36, _, _, _, __T, _, _) ->
yeccerror(__T);
-yeccpars2(37, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
- yeccpars1(__Ts, __Tzr, 34, [37 | __Ss], [__T | __Stack]);
-yeccpars2(37, __Cat, __Ss, [__1|__Stack], __T, __Ts, __Tzr) ->
- __Val = {atom,unwrap(__1)},
+yeccpars2(37, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 23, [37 | __Ss], [__T | __Stack]);
+yeccpars2(37, integer, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 21, [37 | __Ss], [__T | __Stack]);
+yeccpars2(37, atom, __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 38, [37 | __Ss], [__T | __Stack]);
+yeccpars2(37, '[', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 18, [37 | __Ss], [__T | __Stack]);
+yeccpars2(37, '{', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 25, [37 | __Ss], [__T | __Stack]);
+yeccpars2(37, _, _, _, __T, _, _) ->
+ yeccerror(__T);
+yeccpars2(38, '(', __Ss, __Stack, __T, __Ts, __Tzr) ->
+ yeccpars1(__Ts, __Tzr, 35, [38 | __Ss], [__T | __Stack]);
+yeccpars2(38, __Cat, __Ss