java parser generator
home
features
documentation
grammars
downloads
site originally designed by ninth ave
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.