final public JMethod Method() throws ParseException {
String inputType = null;
String outputType = null;
Token name;
JRecord inputAnonymousRecord = null;
JRecord outputAnonymousRecord = null;
jj_consume_token(METHOD_TKN);
name = jj_consume_token(IDENT_TKN);
curMethod = name.toString();
jj_consume_token(LPAREN_TKN);
jj_consume_token(IN_TKN);
curParamType = "input";
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case IDENT_TKN:
inputType = ModuleName();
break;
case LBRACE_TKN:
inputAnonymousRecord = AnonymousRecord();
break;
default:
jj_la1[6] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(COMMA_TKN);
jj_consume_token(OUT_TKN);
curParamType = "output";
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case IDENT_TKN:
outputType = ModuleName();
break;
case LBRACE_TKN:
outputAnonymousRecord = AnonymousRecord();
break;
default:
jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(RPAREN_TKN);
JRecord inputRecordType = null;
JRecord outputRecordType = null;
if (inputAnonymousRecord != null) {
inputRecordType = inputAnonymousRecord;
} else if (inputType.compareTo("NullMessage") != 0) {
if (inputType.indexOf('.', 0) < 0) {