Package org.freestyler.xmlrpcmodelartist.compiler;
Helpers
all = [0 .. 127];
digit = ['0' .. '9'];
nondigit = ['_' + ['.' + [['a' .. 'z'] + ['A' .. 'Z']]]];
nonzero_digit = ['1' .. '9'];
tab = 9;
lf = 10;
cr = 13;
space = 32;
Tokens
model = 'model';
package = 'package';
author = 'author';
comma = ',';
describe = '@';
xmltype='xmltype';
handler= 'handler';
lcurlypar = '{';
rcurlypar = '}';
lroundpar = '(';
rroundpar = ')';
semicolon =';';
int = 'int';
boolean = 'boolean';
string = 'String';
double = 'double';
date = 'Date';
struct = 'struct';
array = 'array';
base64 = 'base64';
void = 'void';
blank = (tab | lf | cr | space)+;
string_value = '"' [all - '"']* '"';
decimal_constant = nonzero_digit digit*;
identifier = nondigit (digit | nondigit)*;
Ignored Tokens
blank;
Productions
xmlrpcmodel = model_declaration
package_declaration
author_clause?
model_description?
any_declaration*
;
model_declaration = model identifier semicolon;
package_declaration = package identifier semicolon;
author_clause = author string_value semicolon;
model_description = describe string_value semicolon;
any_declaration = {optxmltype} xml_type_declaration |
{opthandler} handler_declaration;
xml_type_declaration = xmltype identifier xml_type_description? semicolon;
xml_type_description = describe string_value;
handler_declaration = handler identifier handler_description?
lcurlypar method_declaration+ rcurlypar;
handler_description = describe string_value;
method_declaration = return_value identifier lroundpar arg_list rroundpar
method_description? semicolon;
method_description = describe string_value;
return_value = arg_type;
arg_type = {boolean} boolean |
{int} int |
{date} date |
{double} double |
{string} string |
{struct} struct |
{array} array |
{base64} base64 |
{void} void |
{xml_type} identifier;
arg_list = {noargs} |
{multiple_args} argument follow_on_argument*;
argument=arg_type identifier;
follow_on_argument=comma arg_type identifier;
This site has been last updated by the web master
on 2007/6/24.