// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 com\\kyben\\translatecim\\TranslateCIM.g 2012-05-23 17:28:22
package com.kyben.translatecim;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Stack;
import org.antlr.runtime.BaseRecognizer;
import org.antlr.runtime.BitSet;
import org.antlr.runtime.DFA;
import org.antlr.runtime.EarlyExitException;
import org.antlr.runtime.MismatchedSetException;
import org.antlr.runtime.NoViableAltException;
import org.antlr.runtime.Parser;
import org.antlr.runtime.ParserRuleReturnScope;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.RecognizerSharedState;
import org.antlr.runtime.Token;
import org.antlr.runtime.TokenStream;
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
import org.antlr.stringtemplate.language.AngleBracketTemplateLexer;
public class TranslateCIMParser extends Parser {
// Reserved words
private static final String[] RESERVED_JAVA_WORDS = { "static", "volatile", "default" };
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "PragmaInclude", "PragmaLocale", "QUALIFIER", "COLON", "SEMICOLON", "Identifier", "EQUALS", "COMMA", "SCOPE", "LPAREN", "RPAREN", "ANY", "CLASS", "METHOD", "PARAMETER", "PROPERTY", "REFERENCE", "FLAVOR", "ENABLEOVERRIDE", "DISABLEOVERRIDE", "TOSUBCLASS", "RESTRICTED", "TRANSLATABLE", "LCURLY", "RCURLY", "AS", "DOLLAR", "REF", "LBRACK", "RBRACK", "BOOLEAN", "CHAR16", "DATETIME", "REAL32", "REAL64", "SINT16", "SINT32", "SINT64", "SINT8", "STRING", "UINT16", "UINT32", "UINT64", "UINT8", "IntegralConstant", "DoubleQuotedString", "CharacterConstant", "TRUE", "FALSE", "NULL", "BACKSLASH", "DOUBLEQUOTE", "MINUS", "PLUS", "PRAGMAINCLUDE", "PRAGMALOCALE", "SINGLEQUOTE", "SOURCETYPE", "WhiteSpace", "InlineComment", "MultiLineComment", "EscapeSequence", "StupidEscapeSequence", "HexEscape", "HexDigit", "DecimalConstant", "BinaryConstant", "OctalConstant", "HexConstant", "Exponent", "FloatingPointConstant"
};
public static final int DOLLAR = 30;
public static final int OctalConstant = 71;
public static final int SINT16 = 39;
public static final int CLASS = 16;
public static final int LBRACK = 32;
public static final int PRAGMAINCLUDE = 58;
public static final int UINT8 = 47;
public static final int HexConstant = 72;
public static final int InlineComment = 63;
public static final int FLAVOR = 21;
public static final int DecimalConstant = 69;
public static final int StupidEscapeSequence = 66;
public static final int HexEscape = 67;
public static final int Exponent = 73;
public static final int EQUALS = 10;
public static final int DOUBLEQUOTE = 55;
public static final int EOF = -1;
public static final int HexDigit = 68;
public static final int Identifier = 9;
public static final int LPAREN = 13;
public static final int AS = 29;
public static final int SOURCETYPE = 61;
public static final int DoubleQuotedString = 49;
public static final int RPAREN = 14;
public static final int BOOLEAN = 34;
public static final int SINT64 = 41;
public static final int IntegralConstant = 48;
public static final int SCOPE = 12;
public static final int COMMA = 11;
public static final int SINGLEQUOTE = 60;
public static final int PARAMETER = 18;
public static final int UINT16 = 44;
public static final int PRAGMALOCALE = 59;
public static final int PLUS = 57;
public static final int WhiteSpace = 62;
public static final int SINT32 = 40;
public static final int CharacterConstant = 50;
public static final int MultiLineComment = 64;
public static final int BinaryConstant = 70;
public static final int RBRACK = 33;
public static final int TRANSLATABLE = 26;
public static final int REAL64 = 38;
public static final int QUALIFIER = 6;
public static final int DATETIME = 36;
public static final int NULL = 53;
public static final int REFERENCE = 20;
public static final int DISABLEOVERRIDE = 23;
public static final int RESTRICTED = 25;
public static final int LCURLY = 27;
public static final int SEMICOLON = 8;
public static final int PragmaInclude = 4;
public static final int MINUS = 56;
public static final int ENABLEOVERRIDE = 22;
public static final int TRUE = 51;
public static final int UINT64 = 46;
public static final int REF = 31;
public static final int COLON = 7;
public static final int SINT8 = 42;
public static final int ANY = 15;
public static final int FloatingPointConstant = 74;
public static final int PROPERTY = 19;
public static final int TOSUBCLASS = 24;
public static final int REAL32 = 37;
public static final int RCURLY = 28;
public static final int PragmaLocale = 5;
public static final int UINT32 = 45;
public static final int FALSE = 52;
public static final int EscapeSequence = 65;
public static final int METHOD = 17;
public static final int CHAR16 = 35;
public static final int STRING = 43;
public static final int BACKSLASH = 54;
// delegates
// delegators
public TranslateCIMParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public TranslateCIMParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected StringTemplateGroup templateLib =
new StringTemplateGroup("TranslateCIMParserTemplates", AngleBracketTemplateLexer.class);
public void setTemplateLib(StringTemplateGroup templateLib) {
this.templateLib = templateLib;
}
public StringTemplateGroup getTemplateLib() {
return templateLib;
}
/**
* allows convenient multi-value initialization: "new STAttrMap().put(...).put(...)"
*/
public static class STAttrMap extends HashMap {
public STAttrMap put(String attrName, Object value) {
super.put(attrName, value);
return this;
}
public STAttrMap put(String attrName, int value) {
super.put(attrName, new Integer(value));
return this;
}
}
@Override
public String[] getTokenNames() {
return TranslateCIMParser.tokenNames;
}
@Override
public String getGrammarFileName() {
return "com\\kyben\\translatecim\\TranslateCIM.g";
}
HashMap<String, qualifierDefinition> qualifierDefinitions = new HashMap<String, qualifierDefinition>();
HashMap<String, String> classSubDirectories = new HashMap<String, String>();
HashSet<String> accessedSubDirs;
HashSet<String> outputDirectoryNames = new HashSet<String>();
String TCVersion = "0.9.1";
String cimMajorVersion = null;
String cimMinorVersion = null;
String incSubDirectory = null;
boolean noDeprecated;
boolean noEnums;
StringTemplateGroup templates = null;
String outputDirectory = null; // from the command line, test
String currentInputFileName = ""; // this gets a new value with each
// "pragma include" statement
String currentISO8601DateTime = null;
HashSet<String> javaKeywords = new HashSet<String>();
HashSet<String> javaClasses = new HashSet<String>();
public class qualifierDefinition {
String name;
String type;
boolean isArray;
ArrayList<String> scopes;
ArrayList<String> flavors;
qualifierDefinition(String qName,
String qType,
boolean qIsArray,
ArrayList<String> qScopes,
ArrayList<String> qFlavors) {
this.name = qName;
this.type = qType;
this.isArray = qIsArray;
this.scopes = qScopes;
this.flavors = qFlavors;
}
@Override
public String toString() {
String str =
"name: \"" + name + "\"\n" +
"type: \"" + type + "\"\n" +
"isArray: \"" + isArray + "\"\n" +
"scopes: \"" + scopes + "\"\n" +
"flavors: \"" + flavors + "\"\n";
return str;
}
}
//
// The parser calls this method whenever a CIM class is used in a property
// declaration, method declaration, or method REF. This method emits an error if
// the CIM class is undefined. Otherwise, it updates the list of subdirectories
// that need to be imported in order to resolve the reference to the class.
//
void checkClassName(Token classNameToken) throws RecognitionException {
String classNam = classNameToken.getText();
if (classSubDirectories.containsKey(classNam)) {
String subDir = classSubDirectories.get(classNam);
if (!subDir.equals(incSubDirectory)) {
accessedSubDirs.add(subDir.toLowerCase());
}
} else {
RecognitionException r = new RecognitionException(input);
throw new UndefinedClassException(
currentInputFileName + "(" + r.line + ":" + r.charPositionInLine + ")" +
": class " + classNam + " not defined");
}
}
String htmlNewLineString = "<br><br>";
int htmlNewLineStringLength = htmlNewLineString.length();
String htmlize(String str) {
if (str == null) {
return null;
}
int len = str.length();
StringBuilder retstr = new StringBuilder(len + 20);
for (char estr : str.toCharArray()) {
switch (estr) {
case '&':
retstr.append("&");
break;
case '<':
retstr.append("<");
break;
case '>':
retstr.append(">");
break;
case '\n':
retstr.append(htmlNewLineString);
break;
default:
retstr.append(estr);
}
}
return retstr.toString();
}
// javadocize does:
// 1. break into separate lines (on line length and when you see <br><br>)
// 2. wrap @see on around every reference to a CIM class (not implemented yet)
// 3. escape "@" when it appears as the first character on a line (not impremented yet)
ArrayList<String> javadocize(String str) {
if (str == null) {
return null;
}
ArrayList<String> retArrayList = new ArrayList<String>();
String[] result = str.split("\\s");
StringBuilder currentLine = new StringBuilder();
for (int x = 0; x < result.length; x++) {
String newWord = result[x];
while (newWord.contains(htmlNewLineString)) {
int lineEnd = newWord.indexOf(htmlNewLineString);
currentLine.append(newWord.substring(0, lineEnd + htmlNewLineStringLength));
retArrayList.add(currentLine.toString());
currentLine.setLength(0);
newWord = newWord.substring(lineEnd + htmlNewLineStringLength);
}
if ((currentLine.length() + newWord.length()) > 75) {
retArrayList.add(currentLine.toString());
currentLine.setLength(0);
}
currentLine.append(" " + newWord);
}
retArrayList.add(currentLine.toString());
return retArrayList;
}
String canonicalizeValue(String inValue) {
String retValue = inValue;
retValue = retValue.replace(" ", "_");
retValue = retValue.replace("#", "_");
retValue = retValue.replace("&", "_and_");
retValue = retValue.replace("(", "_");
retValue = retValue.replace(")", "_");
retValue = retValue.replace("+", "_plus_");
retValue = retValue.replace("-", "_");
retValue = retValue.replace(".", "_");
retValue = retValue.replace(",", "_");
retValue = retValue.replace("/", "_");
retValue = retValue.replace("\\", "_");
retValue = retValue.replace("'", "_");
retValue = retValue.replace(":", "_");
retValue = retValue.replace("<", "_");
retValue = retValue.replace("=", "_");
retValue = retValue.replace(">", "_");
retValue = retValue.replace("|", "_");
return retValue;
}
//
// Given a string and a hashset of unique strings, make sure the string doesn't
// appear in the hashset. If it does, generate a new, unique string that
// doesn't appear in the hashset and return it. Store the new string in the
// hashset so it won't be allowed later.
//
String makeUnique(String valueName, HashSet<String> uniqueValueNames) {
String originalValueName = valueName;
int j = 1;
while (uniqueValueNames.contains(valueName)) {
valueName = originalValueName + "_" + Integer.toString(j);
j++;
}
uniqueValueNames.add(valueName);
return valueName;
}
// Debugging methods.
public static void printKeys(Map m) {
System.out.println("printkeys: Size = " + m.size() + ", ");
System.out.println("printkeys: Keys: ");
System.out.println(m.keySet());
}
public static void printValues(Map m) {
System.out.println("printkeys: Values: ");
System.out.println(m.values());
}
public static class mofSpecification_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "mofSpecification"
// com\\kyben\\translatecim\\TranslateCIM.g:306:1: mofSpecification[String majVersion,\n String minVersion,\n String stgFileName,\n String
// outputDirectoryName,\n boolean noDeprecatedIn,\n boolean noEnumsIn] : ( mofProduction )+ ;
public final TranslateCIMParser.mofSpecification_return mofSpecification(String majVersion, String minVersion, String stgFileName,
String outputDirectoryName, boolean noDeprecatedIn, boolean noEnumsIn) throws RecognitionException {
TranslateCIMParser.mofSpecification_return retval = new TranslateCIMParser.mofSpecification_return();
retval.start = input.LT(1);
System.out.println("Starting parser phase, reading token stream, creating java files in " + outputDirectoryName);
cimMajorVersion = majVersion;
cimMinorVersion = minVersion;
outputDirectory = outputDirectoryName;
noDeprecated = noDeprecatedIn;
noEnums = noEnumsIn;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
currentISO8601DateTime = sdf.format(Calendar.getInstance().getTime());
javaKeywords.add("boolean");
javaClasses.add("System");
// Load the template group file (named something.stg) into the "templates" variable
try {
FileReader groupFileR = new FileReader(stgFileName);
templates = new StringTemplateGroup(groupFileR);
groupFileR.close();
} catch (IOException e) {
throw new CantReadStgFileException(": couldn't read string template group file " + e.getMessage());
}
setTemplateLib(templates);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:334:5: ( ( mofProduction )+ )
// com\\kyben\\translatecim\\TranslateCIM.g:334:7: ( mofProduction )+
{
// com\\kyben\\translatecim\\TranslateCIM.g:334:7: ( mofProduction )+
int cnt1 = 0;
loop1: do {
int alt1 = 2;
int LA1_0 = input.LA(1);
if (((LA1_0 >= PragmaInclude && LA1_0 <= QUALIFIER) || LA1_0 == LBRACK)) {
alt1 = 1;
}
switch (alt1) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:334:8: mofProduction
{
pushFollow(FOLLOW_mofProduction_in_mofSpecification133);
mofProduction();
state._fsp--;
}
break;
default:
if (cnt1 >= 1)
break loop1;
EarlyExitException eee =
new EarlyExitException(1, input);
throw eee;
}
cnt1++;
} while (true);
// Create and write the build file.
// String buildFileName = outputDirectory + File.separator + "compile.sh";
// try {
// BufferedWriter buildFile = new BufferedWriter(new FileWriter(buildFileName));
// buildFile.write("#!/bin/bash\n");
// for (String oDirName : outputDirectoryNames) {
// // System.out.println("mofSpecification: oDirName = \"" + oDirName + "\""); // dbg
// buildFile.write("javac -cp /tmp " + oDirName + File.separator + "*.java\n");
// }
// buildFile.close();
// } catch (IOException e) {
// throw new CantCreateBuildFileException("couldn't create build file " + e.getMessage());
// }
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "mofSpecification"
public static class mofProduction_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "mofProduction"
// com\\kyben\\translatecim\\TranslateCIM.g:353:1: mofProduction : ( compilerDirective | qualifierDeclaration | classDeclaration );
public final TranslateCIMParser.mofProduction_return mofProduction() throws RecognitionException {
TranslateCIMParser.mofProduction_return retval = new TranslateCIMParser.mofProduction_return();
retval.start = input.LT(1);
TranslateCIMParser.classDeclaration_return classDeclaration1 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:357:5: ( compilerDirective | qualifierDeclaration | classDeclaration )
int alt2 = 3;
switch (input.LA(1)) {
case PragmaInclude:
case PragmaLocale: {
alt2 = 1;
}
break;
case QUALIFIER: {
alt2 = 2;
}
break;
case LBRACK: {
alt2 = 3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:357:7: compilerDirective
{
pushFollow(FOLLOW_compilerDirective_in_mofProduction162);
compilerDirective();
state._fsp--;
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:358:7: qualifierDeclaration
{
pushFollow(FOLLOW_qualifierDeclaration_in_mofProduction170);
qualifierDeclaration();
state._fsp--;
}
break;
case 3:
// com\\kyben\\translatecim\\TranslateCIM.g:359:7: classDeclaration
{
pushFollow(FOLLOW_classDeclaration_in_mofProduction178);
classDeclaration1 = classDeclaration();
state._fsp--;
// System.out.println("mofProduction: called"); // dbg
if ((classDeclaration1 != null ? classDeclaration1.className : null) != null) { // omitted (deprecated) classes are null
classSubDirectories.put((classDeclaration1 != null ? classDeclaration1.className : null), incSubDirectory);
// Create the output subdirectory if it doesn't exist.
String outputSubDirectoryName = outputDirectory.toLowerCase() + File.separator + incSubDirectory;
File outputSubDirectory = new File(outputSubDirectoryName.toLowerCase());
if (!outputSubDirectory.isDirectory()) {
outputSubDirectory.mkdirs();
}
outputDirectoryNames.add(outputSubDirectoryName); // save the subdirectory name so we can create a "build file" later
// Create and write the output file.
String outputFileName = outputSubDirectoryName + File.separator + (classDeclaration1 != null ? classDeclaration1.className : null) + ".java";
try {
BufferedWriter outputFile = new BufferedWriter(new FileWriter(outputFileName));
// System.out.println("writing file \"" + outputFileName + "\"");
outputFile.write((classDeclaration1 != null ? classDeclaration1.st : null).toString());
outputFile.close();
} catch (IOException e) {
RecognitionException r = new RecognitionException(input);
throw new CantCreateOutputFileException(
currentInputFileName + "(" + r.line + ":" + r.charPositionInLine + ")" +
": couldn't create output file " + e.getMessage());
}
}
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "mofProduction"
public static class compilerDirective_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "compilerDirective"
// com\\kyben\\translatecim\\TranslateCIM.g:389:1: compilerDirective : ( PragmaInclude | PragmaLocale );
public final TranslateCIMParser.compilerDirective_return compilerDirective() throws RecognitionException {
TranslateCIMParser.compilerDirective_return retval = new TranslateCIMParser.compilerDirective_return();
retval.start = input.LT(1);
Token PragmaInclude2 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:393:5: ( PragmaInclude | PragmaLocale )
int alt3 = 2;
int LA3_0 = input.LA(1);
if ((LA3_0 == PragmaInclude)) {
alt3 = 1;
}
else if ((LA3_0 == PragmaLocale)) {
alt3 = 2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:393:7: PragmaInclude
{
PragmaInclude2 = (Token) match(input, PragmaInclude, FOLLOW_PragmaInclude_in_compilerDirective208);
currentInputFileName = (PragmaInclude2 != null ? PragmaInclude2.getText() : null);
// System.out.println("new current filename = " + currentInputFileName); // dbg
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:398:7: PragmaLocale
{
match(input, PragmaLocale, FOLLOW_PragmaLocale_in_compilerDirective222);
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "compilerDirective"
public static class qualifierDeclaration_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierDeclaration"
// com\\kyben\\translatecim\\TranslateCIM.g:402:1: qualifierDeclaration : QUALIFIER qualifierName COLON qualifierType qualifierScopeList (qFl=
// qualifierFlavorList )? SEMICOLON ;
public final TranslateCIMParser.qualifierDeclaration_return qualifierDeclaration() throws RecognitionException {
TranslateCIMParser.qualifierDeclaration_return retval = new TranslateCIMParser.qualifierDeclaration_return();
retval.start = input.LT(1);
TranslateCIMParser.qualifierFlavorList_return qFl = null;
TranslateCIMParser.qualifierName_return qualifierName3 = null;
TranslateCIMParser.qualifierType_return qualifierType4 = null;
TranslateCIMParser.qualifierScopeList_return qualifierScopeList5 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:406:5: ( QUALIFIER qualifierName COLON qualifierType qualifierScopeList (qFl=
// qualifierFlavorList )? SEMICOLON )
// com\\kyben\\translatecim\\TranslateCIM.g:406:7: QUALIFIER qualifierName COLON qualifierType qualifierScopeList (qFl=
// qualifierFlavorList )? SEMICOLON
{
match(input, QUALIFIER, FOLLOW_QUALIFIER_in_qualifierDeclaration243);
pushFollow(FOLLOW_qualifierName_in_qualifierDeclaration245);
qualifierName3 = qualifierName();
state._fsp--;
match(input, COLON, FOLLOW_COLON_in_qualifierDeclaration247);
pushFollow(FOLLOW_qualifierType_in_qualifierDeclaration249);
qualifierType4 = qualifierType();
state._fsp--;
pushFollow(FOLLOW_qualifierScopeList_in_qualifierDeclaration251);
qualifierScopeList5 = qualifierScopeList();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:406:70: (qFl= qualifierFlavorList )?
int alt4 = 2;
int LA4_0 = input.LA(1);
if ((LA4_0 == COMMA)) {
alt4 = 1;
}
switch (alt4) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:406:72: qFl= qualifierFlavorList
{
pushFollow(FOLLOW_qualifierFlavorList_in_qualifierDeclaration257);
qFl = qualifierFlavorList();
state._fsp--;
}
break;
}
match(input, SEMICOLON, FOLLOW_SEMICOLON_in_qualifierDeclaration262);
ArrayList<String> fl = (qFl == null) ? new ArrayList<String>() : qFl.fList;
// System.out.println("qualifierDefinition: called, name = " +
// (qualifierName3!=null?input.toString(qualifierName3.start,qualifierName3.stop):null)); // dbg
qualifierDefinitions.put((qualifierName3 != null ? input.toString(qualifierName3.start, qualifierName3.stop) : null).toLowerCase(),
new qualifierDefinition((qualifierName3 != null ? input.toString(qualifierName3.start, qualifierName3.stop) : null),
(qualifierType4 != null ? qualifierType4.type : null),
(qualifierType4 != null ? qualifierType4.isArray : false),
(qualifierScopeList5 != null ? qualifierScopeList5.sList : null),
fl));
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifierDeclaration"
public static class qualifierName_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierName"
// com\\kyben\\translatecim\\TranslateCIM.g:420:1: qualifierName : Identifier ;
public final TranslateCIMParser.qualifierName_return qualifierName() throws RecognitionException {
TranslateCIMParser.qualifierName_return retval = new TranslateCIMParser.qualifierName_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:421:5: ( Identifier )
// com\\kyben\\translatecim\\TranslateCIM.g:421:7: Identifier
{
match(input, Identifier, FOLLOW_Identifier_in_qualifierName286);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifierName"
public static class qualifierType_return extends ParserRuleReturnScope {
public String type;
public boolean isArray;
public String defaultVal;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierType"
// com\\kyben\\translatecim\\TranslateCIM.g:425:1: qualifierType returns [String type, boolean isArray, String defaultVal] : dataType ( array )? (
// EQUALS qi= qualifierInitializer )? ;
public final TranslateCIMParser.qualifierType_return qualifierType() throws RecognitionException {
TranslateCIMParser.qualifierType_return retval = new TranslateCIMParser.qualifierType_return();
retval.start = input.LT(1);
TranslateCIMParser.qualifierInitializer_return qi = null;
TranslateCIMParser.dataType_return dataType6 = null;
boolean qualifierIsArray = false;
String defValue = "";
// System.out.println("qualifierType: called");
try {
// com\\kyben\\translatecim\\TranslateCIM.g:431:5: ( dataType ( array )? ( EQUALS qi= qualifierInitializer )? )
// com\\kyben\\translatecim\\TranslateCIM.g:431:7: dataType ( array )? ( EQUALS qi= qualifierInitializer )?
{
pushFollow(FOLLOW_dataType_in_qualifierType317);
dataType6 = dataType();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:431:16: ( array )?
int alt5 = 2;
int LA5_0 = input.LA(1);
if ((LA5_0 == LBRACK)) {
alt5 = 1;
}
switch (alt5) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:431:17: array
{
pushFollow(FOLLOW_array_in_qualifierType320);
array();
state._fsp--;
qualifierIsArray = true;
}
break;
}
// com\\kyben\\translatecim\\TranslateCIM.g:431:49: ( EQUALS qi= qualifierInitializer )?
int alt6 = 2;
int LA6_0 = input.LA(1);
if ((LA6_0 == EQUALS)) {
alt6 = 1;
}
switch (alt6) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:431:51: EQUALS qi= qualifierInitializer
{
match(input, EQUALS, FOLLOW_EQUALS_in_qualifierType327);
pushFollow(FOLLOW_qualifierInitializer_in_qualifierType331);
qi = qualifierInitializer();
state._fsp--;
}
break;
}
retval.type = (dataType6 != null ? input.toString(dataType6.start, dataType6.stop) : null);
retval.isArray = qualifierIsArray;
// System.out.println("qualifierType: defValue = " + defValue);
if (qi != null) {
retval.defaultVal = (qi != null ? input.toString(qi.start, qi.stop) : null); // this is never used!!!!!!!!!!!!!!!!!!!!!
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifierType"
public static class qualifierScopeList_return extends ParserRuleReturnScope {
public ArrayList<String> sList;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierScopeList"
// com\\kyben\\translatecim\\TranslateCIM.g:443:1: qualifierScopeList returns [ArrayList<String> sList] : COMMA SCOPE LPAREN m1= metaElement (
// COMMA m2= metaElement )* RPAREN ;
public final TranslateCIMParser.qualifierScopeList_return qualifierScopeList() throws RecognitionException {
TranslateCIMParser.qualifierScopeList_return retval = new TranslateCIMParser.qualifierScopeList_return();
retval.start = input.LT(1);
TranslateCIMParser.metaElement_return m1 = null;
TranslateCIMParser.metaElement_return m2 = null;
retval.sList = new ArrayList<String>();
// System.out.println("qualifierScopeList: called");
try {
// com\\kyben\\translatecim\\TranslateCIM.g:448:5: ( COMMA SCOPE LPAREN m1= metaElement ( COMMA m2= metaElement )* RPAREN )
// com\\kyben\\translatecim\\TranslateCIM.g:448:7: COMMA SCOPE LPAREN m1= metaElement ( COMMA m2= metaElement )* RPAREN
{
match(input, COMMA, FOLLOW_COMMA_in_qualifierScopeList371);
match(input, SCOPE, FOLLOW_SCOPE_in_qualifierScopeList373);
match(input, LPAREN, FOLLOW_LPAREN_in_qualifierScopeList375);
pushFollow(FOLLOW_metaElement_in_qualifierScopeList379);
m1 = metaElement();
state._fsp--;
retval.sList.add((m1 != null ? input.toString(m1.start, m1.stop) : null));
// com\\kyben\\translatecim\\TranslateCIM.g:449:19: ( COMMA m2= metaElement )*
loop7: do {
int alt7 = 2;
int LA7_0 = input.LA(1);
if ((LA7_0 == COMMA)) {
alt7 = 1;
}
switch (alt7) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:449:20: COMMA m2= metaElement
{
match(input, COMMA, FOLLOW_COMMA_in_qualifierScopeList402);
pushFollow(FOLLOW_metaElement_in_qualifierScopeList406);
m2 = metaElement();
state._fsp--;
retval.sList.add((m2 != null ? input.toString(m2.start, m2.stop) : null));
}
break;
default:
break loop7;
}
} while (true);
match(input, RPAREN, FOLLOW_RPAREN_in_qualifierScopeList412);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifierScopeList"
public static class metaElement_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "metaElement"
// com\\kyben\\translatecim\\TranslateCIM.g:453:1: metaElement : ( ANY | CLASS | METHOD | PARAMETER | PROPERTY | REFERENCE | Identifier ) ;
public final TranslateCIMParser.metaElement_return metaElement() throws RecognitionException {
TranslateCIMParser.metaElement_return retval = new TranslateCIMParser.metaElement_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:454:5: ( ( ANY | CLASS | METHOD | PARAMETER | PROPERTY | REFERENCE | Identifier ) )
// com\\kyben\\translatecim\\TranslateCIM.g:454:8: ( ANY | CLASS | METHOD | PARAMETER | PROPERTY | REFERENCE | Identifier )
{
if (input.LA(1) == Identifier || (input.LA(1) >= ANY && input.LA(1) <= REFERENCE)) {
input.consume();
state.errorRecovery = false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "metaElement"
public static class qualifierFlavorList_return extends ParserRuleReturnScope {
public ArrayList fList;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierFlavorList"
// com\\kyben\\translatecim\\TranslateCIM.g:465:1: qualifierFlavorList returns [ArrayList fList] : COMMA FLAVOR LPAREN f1= flavor ( COMMA f2=
// flavor )* RPAREN ;
public final TranslateCIMParser.qualifierFlavorList_return qualifierFlavorList() throws RecognitionException {
TranslateCIMParser.qualifierFlavorList_return retval = new TranslateCIMParser.qualifierFlavorList_return();
retval.start = input.LT(1);
TranslateCIMParser.flavor_return f1 = null;
TranslateCIMParser.flavor_return f2 = null;
retval.fList = new ArrayList();
// System.out.println("qualifierFlavorList: called");
try {
// com\\kyben\\translatecim\\TranslateCIM.g:470:5: ( COMMA FLAVOR LPAREN f1= flavor ( COMMA f2= flavor )* RPAREN )
// com\\kyben\\translatecim\\TranslateCIM.g:470:7: COMMA FLAVOR LPAREN f1= flavor ( COMMA f2= flavor )* RPAREN
{
match(input, COMMA, FOLLOW_COMMA_in_qualifierFlavorList546);
match(input, FLAVOR, FOLLOW_FLAVOR_in_qualifierFlavorList548);
match(input, LPAREN, FOLLOW_LPAREN_in_qualifierFlavorList550);
pushFollow(FOLLOW_flavor_in_qualifierFlavorList554);
f1 = flavor();
state._fsp--;
retval.fList.add((f1 != null ? input.toString(f1.start, f1.stop) : null));
// com\\kyben\\translatecim\\TranslateCIM.g:471:20: ( COMMA f2= flavor )*
loop8: do {
int alt8 = 2;
int LA8_0 = input.LA(1);
if ((LA8_0 == COMMA)) {
alt8 = 1;
}
switch (alt8) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:471:21: COMMA f2= flavor
{
match(input, COMMA, FOLLOW_COMMA_in_qualifierFlavorList578);
pushFollow(FOLLOW_flavor_in_qualifierFlavorList582);
f2 = flavor();
state._fsp--;
retval.fList.add((f2 != null ? input.toString(f2.start, f2.stop) : null));
}
break;
default:
break loop8;
}
} while (true);
match(input, RPAREN, FOLLOW_RPAREN_in_qualifierFlavorList589);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifierFlavorList"
public static class flavor_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "flavor"
// com\\kyben\\translatecim\\TranslateCIM.g:475:1: flavor : ( ENABLEOVERRIDE | DISABLEOVERRIDE | TOSUBCLASS | RESTRICTED | TRANSLATABLE );
public final TranslateCIMParser.flavor_return flavor() throws RecognitionException {
TranslateCIMParser.flavor_return retval = new TranslateCIMParser.flavor_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:476:5: ( ENABLEOVERRIDE | DISABLEOVERRIDE | TOSUBCLASS | RESTRICTED | TRANSLATABLE )
// com\\kyben\\translatecim\\TranslateCIM.g:
{
if ((input.LA(1) >= ENABLEOVERRIDE && input.LA(1) <= TRANSLATABLE)) {
input.consume();
state.errorRecovery = false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "flavor"
protected static class classDeclaration_scope {
ArrayList features;
}
protected Stack classDeclaration_stack = new Stack();
public static class classDeclaration_return extends ParserRuleReturnScope {
public String className;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "classDeclaration"
// com\\kyben\\translatecim\\TranslateCIM.g:484:1: classDeclaration returns [ String className ] : classDeclarationHeader classDeclarationTrailer
// ->
// classFileTemplate(TranslateCIMVersion=TCVersioncurrentDateTime=currentISO8601DateTimemajorCimVersion=cimMajorVersionminorCimVersion=cimMinorVersionsubPackage=incSubDirectorydeprecated=$classDeclarationHeader.qualifierHash.get(\"Deprecated\")classComment=javadocize(htmlize((String)$classDeclarationHeader.qualifierHash.get(\"Description\")))abstract=$classDeclarationHeader.qualifierHash.containsKey(\"Abstract\")cimClassName=$classDeclarationHeader.classNamemofSuperClass=superClassNamefeatures=$classDeclaration::featuresimports=importStatements);
public final TranslateCIMParser.classDeclaration_return classDeclaration() throws RecognitionException {
classDeclaration_stack.push(new classDeclaration_scope());
TranslateCIMParser.classDeclaration_return retval = new TranslateCIMParser.classDeclaration_return();
retval.start = input.LT(1);
TranslateCIMParser.classDeclarationHeader_return classDeclarationHeader7 = null;
TranslateCIMParser.classDeclarationTrailer_return classDeclarationTrailer8 = null;
// System.out.println("classDeclaration: initializing"); // dbg
((classDeclaration_scope) classDeclaration_stack.peek()).features = new ArrayList();
try {
// com\\kyben\\translatecim\\TranslateCIM.g:492:5: ( classDeclarationHeader classDeclarationTrailer ->
// classFileTemplate(TranslateCIMVersion=TCVersioncurrentDateTime=currentISO8601DateTimemajorCimVersion=cimMajorVersionminorCimVersion=cimMinorVersionsubPackage=incSubDirectorydeprecated=$classDeclarationHeader.qualifierHash.get(\"Deprecated\")classComment=javadocize(htmlize((String)$classDeclarationHeader.qualifierHash.get(\"Description\")))abstract=$classDeclarationHeader.qualifierHash.containsKey(\"Abstract\")cimClassName=$classDeclarationHeader.classNamemofSuperClass=superClassNamefeatures=$classDeclaration::featuresimports=importStatements))
// com\\kyben\\translatecim\\TranslateCIM.g:492:7: classDeclarationHeader classDeclarationTrailer
{
pushFollow(FOLLOW_classDeclarationHeader_in_classDeclaration686);
classDeclarationHeader7 = classDeclarationHeader();
state._fsp--;
pushFollow(FOLLOW_classDeclarationTrailer_in_classDeclaration688);
classDeclarationTrailer8 = classDeclarationTrailer();
state._fsp--;
if ((classDeclarationHeader7 != null ? classDeclarationHeader7.className : null) == null) { // this means
// "if it's deprecated and we're skipping deprecated classes"
return retval;
}
String superClassName = null;
if ((classDeclarationTrailer8 != null ? classDeclarationTrailer8.superClassToken : null) != null) {
checkClassName((classDeclarationTrailer8 != null ? classDeclarationTrailer8.superClassToken : null));
superClassName = (classDeclarationTrailer8 != null ? classDeclarationTrailer8.superClassToken : null).getText();
}
retval.className = (classDeclarationHeader7 != null ? classDeclarationHeader7.className : null);
ArrayList<String> importStatements = new ArrayList<String>();
for (String it : accessedSubDirs) {
StringTemplate iStatement = templateLib.getInstanceOf("importTemplate", new STAttrMap().put("subDirectory", it));
importStatements.add(iStatement.toString());
}
// System.out.println("classDeclaration: finishing, abstract = " +
// (classDeclarationHeader7!=null?classDeclarationHeader7.qualifierHash:null).containsKey("Abstract"));
// System.out.println("classDeclaration: finishing, className = " +
// (classDeclarationHeader7!=null?classDeclarationHeader7.className:null));
// TEMPLATE REWRITE
// 511:5: ->
// classFileTemplate(TranslateCIMVersion=TCVersioncurrentDateTime=currentISO8601DateTimemajorCimVersion=cimMajorVersionminorCimVersion=cimMinorVersionsubPackage=incSubDirectorydeprecated=$classDeclarationHeader.qualifierHash.get(\"Deprecated\")classComment=javadocize(htmlize((String)$classDeclarationHeader.qualifierHash.get(\"Description\")))abstract=$classDeclarationHeader.qualifierHash.containsKey(\"Abstract\")cimClassName=$classDeclarationHeader.classNamemofSuperClass=superClassNamefeatures=$classDeclaration::featuresimports=importStatements)
{
retval.st = templateLib
.getInstanceOf(
"classFileTemplate",
new STAttrMap()
.put("TranslateCIMVersion", TCVersion)
.put("currentDateTime", currentISO8601DateTime)
.put("majorCimVersion", cimMajorVersion)
.put("minorCimVersion", cimMinorVersion)
.put("subPackage", incSubDirectory)
.put("deprecated",
(classDeclarationHeader7 != null ? classDeclarationHeader7.qualifierHash : null)
.get("Deprecated"))
.put("classComment",
javadocize(htmlize((String) (classDeclarationHeader7 != null ? classDeclarationHeader7.qualifierHash : null)
.get("Description"))))
.put("abstract",
(classDeclarationHeader7 != null ? classDeclarationHeader7.qualifierHash : null)
.containsKey("Abstract"))
.put("cimClassName", (classDeclarationHeader7 != null ? classDeclarationHeader7.className : null))
.put("mofSuperClass", superClassName)
.put("features", ((classDeclaration_scope) classDeclaration_stack.peek()).features)
.put("imports", importStatements));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
classDeclaration_stack.pop();
}
return retval;
}
// $ANTLR end "classDeclaration"
public static class classDeclarationHeader_return extends ParserRuleReturnScope {
public HashMap qualifierHash;
public String className;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "classDeclarationHeader"
// com\\kyben\\translatecim\\TranslateCIM.g:527:1: classDeclarationHeader returns [ HashMap qualifierHash, String className] : cq= qualifierList
// CLASS className ;
public final TranslateCIMParser.classDeclarationHeader_return classDeclarationHeader() throws RecognitionException {
TranslateCIMParser.classDeclarationHeader_return retval = new TranslateCIMParser.classDeclarationHeader_return();
retval.start = input.LT(1);
TranslateCIMParser.qualifierList_return cq = null;
TranslateCIMParser.className_return className9 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:528:5: (cq= qualifierList CLASS className )
// com\\kyben\\translatecim\\TranslateCIM.g:528:7: cq= qualifierList CLASS className
{
pushFollow(FOLLOW_qualifierList_in_classDeclarationHeader1182);
cq = qualifierList();
state._fsp--;
match(input, CLASS, FOLLOW_CLASS_in_classDeclarationHeader1184);
pushFollow(FOLLOW_className_in_classDeclarationHeader1186);
className9 = className();
state._fsp--;
// System.out.println("classDeclarationHeader: called, className = \"" +
// (className9!=null?input.toString(className9.start,className9.stop):null) + "\"");
// printKeys((cq!=null?cq.qualifierHash:null));
// printValues((cq!=null?cq.qualifierHash:null));
if ((cq != null ? cq.qualifierHash : null).containsKey("Deprecated") && noDeprecated) {
return retval; // return with className = null
}
retval.className = (className9 != null ? input.toString(className9.start, className9.stop) : null);
retval.qualifierHash = (cq != null ? cq.qualifierHash : null);
// Get the subdirectory name and check that the output file name matches the class name.
File incFile = new File(currentInputFileName);
incSubDirectory = incFile.getParent();
incSubDirectory = incSubDirectory != null ? incSubDirectory.toLowerCase() : incSubDirectory;
// System.out.println("classDeclarationHeader: called, incSubDirectory = \"" + incSubDirectory + "\"");
String incBaseName = incFile.getName();
// System.out.println("classDeclarationHeader: incBaseName = \"" + incBaseName + "\"");
if (!incBaseName.startsWith((className9 != null ? input.toString(className9.start, className9.stop) : null))) {
RecognitionException r = new RecognitionException(input);
throw new ClassNameDoesntMatchFileNameException(
currentInputFileName + "(" + r.line + ":" + r.charPositionInLine + ")" +
": class name " + retval.className + " doesn't match file name");
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "classDeclarationHeader"
public static class classDeclarationTrailer_return extends ParserRuleReturnScope {
public Token superClassToken;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "classDeclarationTrailer"
// com\\kyben\\translatecim\\TranslateCIM.g:554:1: classDeclarationTrailer returns [ Token superClassToken ] : ( alias )? (scl= superClass )?
// LCURLY ( classFeature )* RCURLY SEMICOLON ;
public final TranslateCIMParser.classDeclarationTrailer_return classDeclarationTrailer() throws RecognitionException {
TranslateCIMParser.classDeclarationTrailer_return retval = new TranslateCIMParser.classDeclarationTrailer_return();
retval.start = input.LT(1);
TranslateCIMParser.superClass_return scl = null;
// System.out.println("classDeclarationTrailer: initializing");
accessedSubDirs = new HashSet<String>(); // replace any old one with a new one !
try {
// com\\kyben\\translatecim\\TranslateCIM.g:559:5: ( ( alias )? (scl= superClass )? LCURLY ( classFeature )* RCURLY SEMICOLON )
// com\\kyben\\translatecim\\TranslateCIM.g:559:7: ( alias )? (scl= superClass )? LCURLY ( classFeature )* RCURLY SEMICOLON
{
// com\\kyben\\translatecim\\TranslateCIM.g:559:7: ( alias )?
int alt9 = 2;
int LA9_0 = input.LA(1);
if ((LA9_0 == AS)) {
alt9 = 1;
}
switch (alt9) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:559:7: alias
{
pushFollow(FOLLOW_alias_in_classDeclarationTrailer1223);
alias();
state._fsp--;
}
break;
}
// com\\kyben\\translatecim\\TranslateCIM.g:559:14: (scl= superClass )?
int alt10 = 2;
int LA10_0 = input.LA(1);
if ((LA10_0 == COLON)) {
alt10 = 1;
}
switch (alt10) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:559:16: scl= superClass
{
pushFollow(FOLLOW_superClass_in_classDeclarationTrailer1230);
scl = superClass();
state._fsp--;
}
break;
}
match(input, LCURLY, FOLLOW_LCURLY_in_classDeclarationTrailer1235);
// com\\kyben\\translatecim\\TranslateCIM.g:559:41: ( classFeature )*
loop11: do {
int alt11 = 2;
int LA11_0 = input.LA(1);
if ((LA11_0 == LBRACK)) {
alt11 = 1;
}
switch (alt11) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:559:41: classFeature
{
pushFollow(FOLLOW_classFeature_in_classDeclarationTrailer1237);
classFeature();
state._fsp--;
}
break;
default:
break loop11;
}
} while (true);
match(input, RCURLY, FOLLOW_RCURLY_in_classDeclarationTrailer1240);
match(input, SEMICOLON, FOLLOW_SEMICOLON_in_classDeclarationTrailer1242);
if (scl != null) {
retval.superClassToken = (scl != null ? scl.token : null);
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "classDeclarationTrailer"
public static class className_return extends ParserRuleReturnScope {
public Token token;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "className"
// com\\kyben\\translatecim\\TranslateCIM.g:568:1: className returns [ Token token ] : Identifier ;
public final TranslateCIMParser.className_return className() throws RecognitionException {
TranslateCIMParser.className_return retval = new TranslateCIMParser.className_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:569:5: ( Identifier )
// com\\kyben\\translatecim\\TranslateCIM.g:569:7: Identifier
{
match(input, Identifier, FOLLOW_Identifier_in_className1270);
retval.token = input.LT(-1);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "className"
public static class alias_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "alias"
// com\\kyben\\translatecim\\TranslateCIM.g:576:1: alias : AS aliasIdentifier ;
public final TranslateCIMParser.alias_return alias() throws RecognitionException {
TranslateCIMParser.alias_return retval = new TranslateCIMParser.alias_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:577:5: ( AS aliasIdentifier )
// com\\kyben\\translatecim\\TranslateCIM.g:577:7: AS aliasIdentifier
{
match(input, AS, FOLLOW_AS_in_alias1294);
pushFollow(FOLLOW_aliasIdentifier_in_alias1296);
aliasIdentifier();
state._fsp--;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "alias"
public static class aliasIdentifier_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "aliasIdentifier"
// com\\kyben\\translatecim\\TranslateCIM.g:581:1: aliasIdentifier : DOLLAR Identifier ;
public final TranslateCIMParser.aliasIdentifier_return aliasIdentifier() throws RecognitionException {
TranslateCIMParser.aliasIdentifier_return retval = new TranslateCIMParser.aliasIdentifier_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:582:5: ( DOLLAR Identifier )
// com\\kyben\\translatecim\\TranslateCIM.g:582:7: DOLLAR Identifier
{
match(input, DOLLAR, FOLLOW_DOLLAR_in_aliasIdentifier1314);
match(input, Identifier, FOLLOW_Identifier_in_aliasIdentifier1316);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "aliasIdentifier"
public static class superClass_return extends ParserRuleReturnScope {
public Token token;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "superClass"
// com\\kyben\\translatecim\\TranslateCIM.g:586:1: superClass returns [ Token token ] : COLON className ;
public final TranslateCIMParser.superClass_return superClass() throws RecognitionException {
TranslateCIMParser.superClass_return retval = new TranslateCIMParser.superClass_return();
retval.start = input.LT(1);
TranslateCIMParser.className_return className10 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:587:5: ( COLON className )
// com\\kyben\\translatecim\\TranslateCIM.g:587:7: COLON className
{
match(input, COLON, FOLLOW_COLON_in_superClass1338);
pushFollow(FOLLOW_className_in_superClass1340);
className10 = className();
state._fsp--;
retval.token = (className10 != null ? className10.token : null);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "superClass"
public static class classFeature_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "classFeature"
// com\\kyben\\translatecim\\TranslateCIM.g:594:1: classFeature : classFeaturePiece ;
public final TranslateCIMParser.classFeature_return classFeature() throws RecognitionException {
TranslateCIMParser.classFeature_return retval = new TranslateCIMParser.classFeature_return();
retval.start = input.LT(1);
TranslateCIMParser.classFeaturePiece_return classFeaturePiece11 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:598:5: ( classFeaturePiece )
// com\\kyben\\translatecim\\TranslateCIM.g:598:7: classFeaturePiece
{
pushFollow(FOLLOW_classFeaturePiece_in_classFeature1367);
classFeaturePiece11 = classFeaturePiece();
state._fsp--;
// System.out.println("classFeature: called");
if ((classFeaturePiece11 != null ? classFeaturePiece11.st : null) != null) {
((classDeclaration_scope) classDeclaration_stack.peek()).features
.add((classFeaturePiece11 != null ? classFeaturePiece11.st : null));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "classFeature"
protected static class classFeaturePiece_scope {
HashMap featureQualifierHash;
}
protected Stack classFeaturePiece_stack = new Stack();
public static class classFeaturePiece_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "classFeaturePiece"
// com\\kyben\\translatecim\\TranslateCIM.g:608:1: classFeaturePiece : qualifierList featureBodyDeclaration ->
// classFeatureTemplate(comment=javadocize(htmlize((String)$qualifierList.qualifierHash.get(\"Description\")))deprecated=$qualifierList.qualifierHash.get(\"Deprecated\")featureBody=$featureBodyDeclaration.strng);
public final TranslateCIMParser.classFeaturePiece_return classFeaturePiece() throws RecognitionException {
classFeaturePiece_stack.push(new classFeaturePiece_scope());
TranslateCIMParser.classFeaturePiece_return retval = new TranslateCIMParser.classFeaturePiece_return();
retval.start = input.LT(1);
TranslateCIMParser.qualifierList_return qualifierList12 = null;
TranslateCIMParser.featureBodyDeclaration_return featureBodyDeclaration13 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:615:5: ( qualifierList featureBodyDeclaration ->
// classFeatureTemplate(comment=javadocize(htmlize((String)$qualifierList.qualifierHash.get(\"Description\")))deprecated=$qualifierList.qualifierHash.get(\"Deprecated\")featureBody=$featureBodyDeclaration.strng))
// com\\kyben\\translatecim\\TranslateCIM.g:615:7: qualifierList featureBodyDeclaration
{
pushFollow(FOLLOW_qualifierList_in_classFeaturePiece1402);
qualifierList12 = qualifierList();
state._fsp--;
((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash = (qualifierList12 != null ? qualifierList12.qualifierHash : null);
pushFollow(FOLLOW_featureBodyDeclaration_in_classFeaturePiece1406);
featureBodyDeclaration13 = featureBodyDeclaration();
state._fsp--;
// TEMPLATE REWRITE
// 616:5: ->
// classFeatureTemplate(comment=javadocize(htmlize((String)$qualifierList.qualifierHash.get(\"Description\")))deprecated=$qualifierList.qualifierHash.get(\"Deprecated\")featureBody=$featureBodyDeclaration.strng)
{
retval.st = templateLib.getInstanceOf(
"classFeatureTemplate",
new STAttrMap()
.put("comment",
javadocize(htmlize((String) (qualifierList12 != null ? qualifierList12.qualifierHash : null)
.get("Description"))))
.put("deprecated", (qualifierList12 != null ? qualifierList12.qualifierHash : null).get("Deprecated"))
.put("featureBody", (featureBodyDeclaration13 != null ? featureBodyDeclaration13.strng : null)));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
classFeaturePiece_stack.pop();
}
return retval;
}
// $ANTLR end "classFeaturePiece"
public static class featureBodyDeclaration_return extends ParserRuleReturnScope {
public String strng;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "featureBodyDeclaration"
// com\\kyben\\translatecim\\TranslateCIM.g:622:1: featureBodyDeclaration returns [ String strng ] : ( dataPropertyDeclaration |
// referencePropertyDeclaration | methodDeclaration );
public final TranslateCIMParser.featureBodyDeclaration_return featureBodyDeclaration() throws RecognitionException {
TranslateCIMParser.featureBodyDeclaration_return retval = new TranslateCIMParser.featureBodyDeclaration_return();
retval.start = input.LT(1);
TranslateCIMParser.dataPropertyDeclaration_return dataPropertyDeclaration14 = null;
TranslateCIMParser.referencePropertyDeclaration_return referencePropertyDeclaration15 = null;
TranslateCIMParser.methodDeclaration_return methodDeclaration16 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:626:5: ( dataPropertyDeclaration | referencePropertyDeclaration | methodDeclaration )
int alt12 = 3;
alt12 = dfa12.predict(input);
switch (alt12) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:626:7: dataPropertyDeclaration
{
pushFollow(FOLLOW_dataPropertyDeclaration_in_featureBodyDeclaration1521);
dataPropertyDeclaration14 = dataPropertyDeclaration();
state._fsp--;
if ((dataPropertyDeclaration14 != null ? dataPropertyDeclaration14.st : null) != null) {
retval.strng = (dataPropertyDeclaration14 != null ? dataPropertyDeclaration14.st : null).toString();
}
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:632:7: referencePropertyDeclaration
{
pushFollow(FOLLOW_referencePropertyDeclaration_in_featureBodyDeclaration1535);
referencePropertyDeclaration15 = referencePropertyDeclaration();
state._fsp--;
if ((referencePropertyDeclaration15 != null ? referencePropertyDeclaration15.st : null) != null) {
retval.strng = (referencePropertyDeclaration15 != null ? referencePropertyDeclaration15.st : null).toString();
}
}
break;
case 3:
// com\\kyben\\translatecim\\TranslateCIM.g:638:7: methodDeclaration
{
pushFollow(FOLLOW_methodDeclaration_in_featureBodyDeclaration1549);
methodDeclaration16 = methodDeclaration();
state._fsp--;
if ((methodDeclaration16 != null ? methodDeclaration16.st : null) != null) {
retval.strng = (methodDeclaration16 != null ? methodDeclaration16.st : null).toString();
}
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "featureBodyDeclaration"
protected static class dataPropertyDeclaration_scope {
ArrayList<String> constantNames;
}
protected Stack dataPropertyDeclaration_stack = new Stack();
public static class dataPropertyDeclaration_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "dataPropertyDeclaration"
// com\\kyben\\translatecim\\TranslateCIM.g:647:1: dataPropertyDeclaration : dataType nonReservedName (arr= array )? ( EQUALS dV= initializer )?
// SEMICOLON ->
// classDataProperty(enumerable=enumerabledeprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$dataType.stisArray=arr!=nullname=$nonReservedName.nrStringinitializerFrag=initializerFragment.toString()valuesLineList=classPropertyValuesLineList.toString()valuesComments=classPropertyValuesComments);
public final TranslateCIMParser.dataPropertyDeclaration_return dataPropertyDeclaration() throws RecognitionException {
dataPropertyDeclaration_stack.push(new dataPropertyDeclaration_scope());
TranslateCIMParser.dataPropertyDeclaration_return retval = new TranslateCIMParser.dataPropertyDeclaration_return();
retval.start = input.LT(1);
TranslateCIMParser.array_return arr = null;
TranslateCIMParser.initializer_return dV = null;
TranslateCIMParser.nonReservedName_return nonReservedName17 = null;
TranslateCIMParser.dataType_return dataType18 = null;
// System.out.println("dataPropertyDeclaration: initializing"); // dbg
boolean isArray = false;
String classPropertyText = null;
((dataPropertyDeclaration_scope) dataPropertyDeclaration_stack.peek()).constantNames = new ArrayList<String>();
try {
// com\\kyben\\translatecim\\TranslateCIM.g:657:5: ( dataType nonReservedName (arr= array )? ( EQUALS dV= initializer )? SEMICOLON ->
// classDataProperty(enumerable=enumerabledeprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$dataType.stisArray=arr!=nullname=$nonReservedName.nrStringinitializerFrag=initializerFragment.toString()valuesLineList=classPropertyValuesLineList.toString()valuesComments=classPropertyValuesComments))
// com\\kyben\\translatecim\\TranslateCIM.g:657:7: dataType nonReservedName (arr= array )? ( EQUALS dV= initializer )? SEMICOLON
{
pushFollow(FOLLOW_dataType_in_dataPropertyDeclaration1590);
dataType18 = dataType();
state._fsp--;
pushFollow(FOLLOW_nonReservedName_in_dataPropertyDeclaration1592);
boolean enumerable = true;
if (noEnums ||
!((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("Values") ||
(!(dataType18 != null ? input.toString(dataType18.start, dataType18.stop) : null).equals("uint8") &&
!(dataType18 != null ? input.toString(dataType18.start, dataType18.stop) : null).equals("sint8") &&
!(dataType18 != null ? input.toString(dataType18.start, dataType18.stop) : null).equals("uint16") &&
!(dataType18 != null ? input.toString(dataType18.start, dataType18.stop) : null).equals("sint16") &&
!(dataType18 != null ? input.toString(dataType18.start, dataType18.stop) : null).equals("uint32") &&
!(dataType18 != null ? input.toString(dataType18.start, dataType18.stop) : null).equals("sint32") &&
!(dataType18 != null ? input.toString(dataType18.start, dataType18.stop) : null).equals("string"))) {
enumerable = false;
}
nonReservedName17 = nonReservedName();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:657:32: (arr= array )?
int alt13 = 2;
int LA13_0 = input.LA(1);
if ((LA13_0 == LBRACK)) {
alt13 = 1;
}
switch (alt13) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:657:34: arr= array
{
pushFollow(FOLLOW_array_in_dataPropertyDeclaration1598);
arr = array();
state._fsp--;
}
break;
}
// com\\kyben\\translatecim\\TranslateCIM.g:657:47: ( EQUALS dV= initializer )?
int alt14 = 2;
int LA14_0 = input.LA(1);
if ((LA14_0 == EQUALS)) {
alt14 = 1;
}
switch (alt14) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:657:48: EQUALS dV= initializer
{
match(input, EQUALS, FOLLOW_EQUALS_in_dataPropertyDeclaration1604);
pushFollow(FOLLOW_initializer_in_dataPropertyDeclaration1608);
dV = initializer();
state._fsp--;
}
break;
}
match(input, SEMICOLON, FOLLOW_SEMICOLON_in_dataPropertyDeclaration1613);
// System.out.println("dataPropertyDeclaration: property = \"" + (nonReservedName17!=null?nonReservedName17.nrString:null) + "\""); //
// dbg
if (((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("Deprecated") && noDeprecated) {
return retval; // return without setting dataPropertyDeclaration.st
}
ArrayList<String> classPropertyValuesLines = new ArrayList<String>();
ArrayList<String> classPropertyValuesComments = new ArrayList<String>();
StringTemplate classPropertyValuesLineList = templates.getInstanceOf("classPropertyValuesLineList");
ArrayList<String> namedInitializers = new ArrayList<String>();
if (((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("Values")) {
if (!((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("ValueMap")) {
RecognitionException r = new RecognitionException(input);
throw new ValuesButNoValueMapException(
currentInputFileName + "(" + r.line + ":" + r.charPositionInLine + ")" +
": property " + (nonReservedName17 != null ? nonReservedName17.nrString : null) + " has a Values qualifier but no ValueMap qualifier");
}
ArrayList<String> valueMapList = (ArrayList) ((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash
.get("ValueMap");
ArrayList<String> valuesList = (ArrayList) ((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash
.get("Values");
if (valueMapList.size() != valuesList.size()) {
RecognitionException r = new RecognitionException(input);
throw new ValuesDontMatchValueMapException(
currentInputFileName + "(" + r.line + ":" + r.charPositionInLine + ")" +
": property " + (nonReservedName17 != null ? nonReservedName17.nrString : null) + " has Values and ValueMaps qualifiers with differing numbers of elements");
}
HashSet<String> uniqueValueNames = new HashSet<String>();
for (int i = 0; i < valuesList.size(); i++) {
String valueName = makeUnique(canonicalizeValue(valuesList.get(i)), uniqueValueNames);
String valueMap = valueMapList.get(i);
if (valueName.endsWith("_Reserved") ||
valueMap.contains("..")) {
StringTemplate classPropertyValuesComment = templates.getInstanceOf("classPropertyValuesComment");
classPropertyValuesComment.setAttribute("enumerable", enumerable);
classPropertyValuesComment.setAttribute("constantName", valueName);
classPropertyValuesComment.setAttribute("constantValue", valueMap);
classPropertyValuesComments.add(classPropertyValuesComment.toString());
} else {
if (enumerable) {
if (javaKeywords.contains(valueName)) {
valueName = "cim_" + valueName;
} else {
char first = valueName.charAt(0);
if ((first >= '0') && (first <= '9')) {
valueName = "cim_" + valueName;
}
}
} else {
valueName = (nonReservedName17 != null ? nonReservedName17.nrString : null).toUpperCase() + '_' + valueName;
}
if ((dataType18 != null ? dataType18.st : null).toString().equals("String")) {
valueMap = "\"" + valueMap + "\"";
}
StringTemplate classPropertyValuesLine = templates.getInstanceOf("classPropertyValuesLine");
classPropertyValuesLine.setAttribute("enumerable", enumerable);
classPropertyValuesLine.setAttribute("type", (dataType18 != null ? dataType18.st : null));
classPropertyValuesLine.setAttribute("constantName", valueName);
classPropertyValuesLine.setAttribute("constantValue", valueMap);
classPropertyValuesLines.add(classPropertyValuesLine.toString());
}
}
classPropertyValuesLineList.setAttribute("enumerable", enumerable);
classPropertyValuesLineList.setAttribute("valuesLines", classPropertyValuesLines);
if (dV != null) {
for (int z = 0; z < dV.initializerList.size(); z++) {
String initialValue = dV.initializerList.get(z);
if (((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("Values") && enumerable) {
// lookup the name of the value here.
for (int i = 0; i < valueMapList.size(); i++) {
if (valueMapList.get(i).equals(initialValue)) {
namedInitializers.add(canonicalizeValue(valuesList.get(i)));
break;
}
}
}
}
}
} else {
if (dV != null) {
namedInitializers.add(dV.initializerList.get(0));
}
}
// turn namedInitializers into an initializerFragment
StringTemplate initializerFragment = templates.getInstanceOf("initializerFragment");
initializerFragment.setAttribute("enumerable", enumerable);
initializerFragment.setAttribute("isArray", (arr != null));
initializerFragment.setAttribute("name", (nonReservedName17 != null ? nonReservedName17.nrString : null));
initializerFragment.setAttribute("initializerPieces", namedInitializers);
if (((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("ArrayType")) {
if (arr == null) {
RecognitionException r = new RecognitionException(input);
throw new ArrayTypeOnNonArrayException(
currentInputFileName + "(" + r.line + ":" + r.charPositionInLine + ")" +
": property " + (nonReservedName17 != null ? nonReservedName17.nrString : null) + " has the ArrayType qualifier, but isn't an array");
}
}
// TEMPLATE REWRITE
// 773:5: ->
// classDataProperty(enumerable=enumerabledeprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$dataType.stisArray=arr!=nullname=$nonReservedName.nrStringinitializerFrag=initializerFragment.toString()valuesLineList=classPropertyValuesLineList.toString()valuesComments=classPropertyValuesComments)
{
retval.st = templateLib
.getInstanceOf(
"classDataProperty",
new STAttrMap()
.put("enumerable", enumerable)
.put("deprecated",
((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash
.containsKey("Deprecated")).put("type", (dataType18 != null ? dataType18.st : null))
.put("isArray", arr != null).put("name", (nonReservedName17 != null ? nonReservedName17.nrString : null))
.put("initializerFrag", initializerFragment.toString())
.put("valuesLineList", classPropertyValuesLineList.toString())
.put("valuesComments", classPropertyValuesComments));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
dataPropertyDeclaration_stack.pop();
}
return retval;
}
// $ANTLR end "dataPropertyDeclaration"
public static class referencePropertyDeclaration_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "referencePropertyDeclaration"
// com\\kyben\\translatecim\\TranslateCIM.g:784:1: referencePropertyDeclaration : className REF nonReservedName (arr= array )? SEMICOLON ->
// classReferencePropertyTemplate(deprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$className.textisArray=arr!=nullname=$nonReservedName.nrString);
public final TranslateCIMParser.referencePropertyDeclaration_return referencePropertyDeclaration() throws RecognitionException {
TranslateCIMParser.referencePropertyDeclaration_return retval = new TranslateCIMParser.referencePropertyDeclaration_return();
retval.start = input.LT(1);
TranslateCIMParser.array_return arr = null;
TranslateCIMParser.className_return className19 = null;
TranslateCIMParser.nonReservedName_return nonReservedName20 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:785:5: ( className REF nonReservedName (arr= array )? SEMICOLON ->
// classReferencePropertyTemplate(deprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$className.textisArray=arr!=nullname=$nonReservedName.nrString))
// com\\kyben\\translatecim\\TranslateCIM.g:785:7: className REF nonReservedName (arr= array )? SEMICOLON
{
pushFollow(FOLLOW_className_in_referencePropertyDeclaration1938);
className19 = className();
state._fsp--;
match(input, REF, FOLLOW_REF_in_referencePropertyDeclaration1940);
pushFollow(FOLLOW_nonReservedName_in_referencePropertyDeclaration1942);
nonReservedName20 = nonReservedName();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:785:37: (arr= array )?
int alt15 = 2;
int LA15_0 = input.LA(1);
if ((LA15_0 == LBRACK)) {
alt15 = 1;
}
switch (alt15) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:785:39: arr= array
{
pushFollow(FOLLOW_array_in_referencePropertyDeclaration1948);
arr = array();
state._fsp--;
}
break;
}
match(input, SEMICOLON, FOLLOW_SEMICOLON_in_referencePropertyDeclaration1953);
if (((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("Deprecated") && noDeprecated) {
return retval; // return, skipping the setting of referencePropertyDeclaration.st
}
checkClassName((className19 != null ? className19.token : null));
// TEMPLATE REWRITE
// 792:5: ->
// classReferencePropertyTemplate(deprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$className.textisArray=arr!=nullname=$nonReservedName.nrString)
{
retval.st = templateLib
.getInstanceOf(
"classReferencePropertyTemplate",
new STAttrMap()
.put("deprecated",
((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash
.containsKey("Deprecated"))
.put("type", (className19 != null ? input.toString(className19.start, className19.stop) : null))
.put("isArray", arr != null).put("name", (nonReservedName20 != null ? nonReservedName20.nrString : null)));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "referencePropertyDeclaration"
protected static class methodDeclaration_scope {
boolean thisMethodIsDeprecated;
}
protected Stack methodDeclaration_stack = new Stack();
public static class methodDeclaration_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "methodDeclaration"
// com\\kyben\\translatecim\\TranslateCIM.g:799:1: methodDeclaration : dataType methodName LPAREN ( methodParameterList )? RPAREN SEMICOLON ->
// classMethodTemplate(deprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$dataType.stname=$methodName.textparameters=mParmListbogusReturnValue=$dataType.defaultVal);
public final TranslateCIMParser.methodDeclaration_return methodDeclaration() throws RecognitionException {
methodDeclaration_stack.push(new methodDeclaration_scope());
TranslateCIMParser.methodDeclaration_return retval = new TranslateCIMParser.methodDeclaration_return();
retval.start = input.LT(1);
TranslateCIMParser.methodParameterList_return methodParameterList21 = null;
TranslateCIMParser.dataType_return dataType22 = null;
TranslateCIMParser.methodName_return methodName23 = null;
boolean mpexists = false;
StringTemplate mParmList = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:807:5: ( dataType methodName LPAREN ( methodParameterList )? RPAREN SEMICOLON ->
// classMethodTemplate(deprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$dataType.stname=$methodName.textparameters=mParmListbogusReturnValue=$dataType.defaultVal))
// com\\kyben\\translatecim\\TranslateCIM.g:807:7: dataType methodName LPAREN ( methodParameterList )? RPAREN SEMICOLON
{
pushFollow(FOLLOW_dataType_in_methodDeclaration2163);
dataType22 = dataType();
state._fsp--;
pushFollow(FOLLOW_methodName_in_methodDeclaration2165);
methodName23 = methodName();
state._fsp--;
match(input, LPAREN, FOLLOW_LPAREN_in_methodDeclaration2167);
// com\\kyben\\translatecim\\TranslateCIM.g:807:34: ( methodParameterList )?
int alt16 = 2;
int LA16_0 = input.LA(1);
if ((LA16_0 == Identifier || LA16_0 == LBRACK || (LA16_0 >= BOOLEAN && LA16_0 <= UINT8))) {
alt16 = 1;
}
switch (alt16) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:807:35: methodParameterList
{
pushFollow(FOLLOW_methodParameterList_in_methodDeclaration2170);
methodParameterList21 = methodParameterList();
state._fsp--;
mpexists = true;
}
break;
}
match(input, RPAREN, FOLLOW_RPAREN_in_methodDeclaration2175);
match(input, SEMICOLON, FOLLOW_SEMICOLON_in_methodDeclaration2177);
if (((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash.containsKey("Deprecated") && noDeprecated) {
return retval; // return, skipping the setting of methodDeclaration.st
}
if (mpexists) {
mParmList = (methodParameterList21 != null ? methodParameterList21.st : null);
}
// TEMPLATE REWRITE
// 816:5: ->
// classMethodTemplate(deprecated=$classFeaturePiece::featureQualifierHash.containsKey(\"Deprecated\")type=$dataType.stname=$methodName.textparameters=mParmListbogusReturnValue=$dataType.defaultVal)
{
retval.st = templateLib
.getInstanceOf(
"classMethodTemplate",
new STAttrMap()
.put("deprecated",
((classFeaturePiece_scope) classFeaturePiece_stack.peek()).featureQualifierHash
.containsKey("Deprecated")).put("type", (dataType22 != null ? dataType22.st : null))
.put("name", (methodName23 != null ? input.toString(methodName23.start, methodName23.stop) : null))
.put("parameters", mParmList)
.put("bogusReturnValue", (dataType22 != null ? dataType22.defaultVal : null)));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
methodDeclaration_stack.pop();
}
return retval;
}
// $ANTLR end "methodDeclaration"
public static class methodName_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "methodName"
// com\\kyben\\translatecim\\TranslateCIM.g:824:1: methodName : Identifier ;
public final TranslateCIMParser.methodName_return methodName() throws RecognitionException {
TranslateCIMParser.methodName_return retval = new TranslateCIMParser.methodName_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:825:5: ( Identifier )
// com\\kyben\\translatecim\\TranslateCIM.g:825:7: Identifier
{
match(input, Identifier, FOLLOW_Identifier_in_methodName2396);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "methodName"
protected static class methodParameterList_scope {
List mparms;
}
protected Stack methodParameterList_stack = new Stack();
public static class methodParameterList_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "methodParameterList"
// com\\kyben\\translatecim\\TranslateCIM.g:829:1: methodParameterList : methodParameter ( COMMA methodParameter )* ->
// methodParameterListTemplate(parms=$methodParameterList::mparms);
public final TranslateCIMParser.methodParameterList_return methodParameterList() throws RecognitionException {
methodParameterList_stack.push(new methodParameterList_scope());
TranslateCIMParser.methodParameterList_return retval = new TranslateCIMParser.methodParameterList_return();
retval.start = input.LT(1);
((methodParameterList_scope) methodParameterList_stack.peek()).mparms = new ArrayList();
try {
// com\\kyben\\translatecim\\TranslateCIM.g:836:5: ( methodParameter ( COMMA methodParameter )* ->
// methodParameterListTemplate(parms=$methodParameterList::mparms))
// com\\kyben\\translatecim\\TranslateCIM.g:836:7: methodParameter ( COMMA methodParameter )*
{
pushFollow(FOLLOW_methodParameter_in_methodParameterList2431);
methodParameter();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:836:23: ( COMMA methodParameter )*
loop17: do {
int alt17 = 2;
int LA17_0 = input.LA(1);
if ((LA17_0 == COMMA)) {
alt17 = 1;
}
switch (alt17) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:836:24: COMMA methodParameter
{
match(input, COMMA, FOLLOW_COMMA_in_methodParameterList2434);
pushFollow(FOLLOW_methodParameter_in_methodParameterList2436);
methodParameter();
state._fsp--;
}
break;
default:
break loop17;
}
} while (true);
// TEMPLATE REWRITE
// 837:5: -> methodParameterListTemplate(parms=$methodParameterList::mparms)
{
retval.st = templateLib.getInstanceOf("methodParameterListTemplate",
new STAttrMap().put("parms", ((methodParameterList_scope) methodParameterList_stack.peek()).mparms));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
methodParameterList_stack.pop();
}
return retval;
}
// $ANTLR end "methodParameterList"
public static class methodParameter_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "methodParameter"
// com\\kyben\\translatecim\\TranslateCIM.g:841:1: methodParameter : ( methodParm | methodRef );
public final TranslateCIMParser.methodParameter_return methodParameter() throws RecognitionException {
TranslateCIMParser.methodParameter_return retval = new TranslateCIMParser.methodParameter_return();
retval.start = input.LT(1);
TranslateCIMParser.methodParm_return methodParm24 = null;
TranslateCIMParser.methodRef_return methodRef25 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:842:5: ( methodParm | methodRef )
int alt18 = 2;
alt18 = dfa18.predict(input);
switch (alt18) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:842:7: methodParm
{
pushFollow(FOLLOW_methodParm_in_methodParameter2469);
methodParm24 = methodParm();
state._fsp--;
((methodParameterList_scope) methodParameterList_stack.peek()).mparms.add((methodParm24 != null ? methodParm24.st : null));
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:846:7: methodRef
{
pushFollow(FOLLOW_methodRef_in_methodParameter2483);
methodRef25 = methodRef();
state._fsp--;
((methodParameterList_scope) methodParameterList_stack.peek()).mparms.add((methodRef25 != null ? methodRef25.st : null));
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "methodParameter"
public static class methodParm_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "methodParm"
// com\\kyben\\translatecim\\TranslateCIM.g:853:1: methodParm : (mq= qualifierList )? dataType nonReservedName (arr= array )? ->
// methodParameterTemplate(comment=javadocize(htmlize((String)$mq.qualifierHash.get(\"Description\")))type=$dataType.stisArray=arr!=nullname=$nonReservedName.nrString);
public final TranslateCIMParser.methodParm_return methodParm() throws RecognitionException {
TranslateCIMParser.methodParm_return retval = new TranslateCIMParser.methodParm_return();
retval.start = input.LT(1);
TranslateCIMParser.qualifierList_return mq = null;
TranslateCIMParser.array_return arr = null;
TranslateCIMParser.dataType_return dataType26 = null;
TranslateCIMParser.nonReservedName_return nonReservedName27 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:854:5: ( (mq= qualifierList )? dataType nonReservedName (arr= array )? ->
// methodParameterTemplate(comment=javadocize(htmlize((String)$mq.qualifierHash.get(\"Description\")))type=$dataType.stisArray=arr!=nullname=$nonReservedName.nrString))
// com\\kyben\\translatecim\\TranslateCIM.g:854:7: (mq= qualifierList )? dataType nonReservedName (arr= array )?
{
// com\\kyben\\translatecim\\TranslateCIM.g:854:9: (mq= qualifierList )?
int alt19 = 2;
int LA19_0 = input.LA(1);
if ((LA19_0 == LBRACK)) {
alt19 = 1;
}
switch (alt19) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:854:9: mq= qualifierList
{
pushFollow(FOLLOW_qualifierList_in_methodParm2509);
mq = qualifierList();
state._fsp--;
}
break;
}
pushFollow(FOLLOW_dataType_in_methodParm2512);
dataType26 = dataType();
state._fsp--;
pushFollow(FOLLOW_nonReservedName_in_methodParm2514);
nonReservedName27 = nonReservedName();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:854:50: (arr= array )?
int alt20 = 2;
int LA20_0 = input.LA(1);
if ((LA20_0 == LBRACK)) {
alt20 = 1;
}
switch (alt20) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:854:52: arr= array
{
pushFollow(FOLLOW_array_in_methodParm2520);
arr = array();
state._fsp--;
}
break;
}
// TEMPLATE REWRITE
// 855:5: ->
// methodParameterTemplate(comment=javadocize(htmlize((String)$mq.qualifierHash.get(\"Description\")))type=$dataType.stisArray=arr!=nullname=$nonReservedName.nrString)
{
retval.st = templateLib.getInstanceOf(
"methodParameterTemplate",
new STAttrMap().put("comment", javadocize(htmlize((String) (mq != null ? mq.qualifierHash : null).get("Description"))))
.put("type", (dataType26 != null ? dataType26.st : null)).put("isArray", arr != null)
.put("name", (nonReservedName27 != null ? nonReservedName27.nrString : null)));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "methodParm"
public static class methodRef_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "methodRef"
// com\\kyben\\translatecim\\TranslateCIM.g:862:1: methodRef : (mq= qualifierList )? className REF nonReservedName (arr= array )? ->
// methodReferenceTemplate(comment=$mq.qualifierHash.get(\"Description\")className=$className.textisArray=arr!=nullreferenceName=$nonReservedName.nrString);
public final TranslateCIMParser.methodRef_return methodRef() throws RecognitionException {
TranslateCIMParser.methodRef_return retval = new TranslateCIMParser.methodRef_return();
retval.start = input.LT(1);
TranslateCIMParser.qualifierList_return mq = null;
TranslateCIMParser.array_return arr = null;
TranslateCIMParser.className_return className28 = null;
TranslateCIMParser.nonReservedName_return nonReservedName29 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:863:5: ( (mq= qualifierList )? className REF nonReservedName (arr= array )? ->
// methodReferenceTemplate(comment=$mq.qualifierHash.get(\"Description\")className=$className.textisArray=arr!=nullreferenceName=$nonReservedName.nrString))
// com\\kyben\\translatecim\\TranslateCIM.g:863:7: (mq= qualifierList )? className REF nonReservedName (arr= array )?
{
// com\\kyben\\translatecim\\TranslateCIM.g:863:9: (mq= qualifierList )?
int alt21 = 2;
int LA21_0 = input.LA(1);
if ((LA21_0 == LBRACK)) {
alt21 = 1;
}
switch (alt21) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:863:9: mq= qualifierList
{
pushFollow(FOLLOW_qualifierList_in_methodRef2686);
mq = qualifierList();
state._fsp--;
}
break;
}
pushFollow(FOLLOW_className_in_methodRef2689);
className28 = className();
state._fsp--;
match(input, REF, FOLLOW_REF_in_methodRef2691);
pushFollow(FOLLOW_nonReservedName_in_methodRef2693);
nonReservedName29 = nonReservedName();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:863:55: (arr= array )?
int alt22 = 2;
int LA22_0 = input.LA(1);
if ((LA22_0 == LBRACK)) {
alt22 = 1;
}
switch (alt22) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:863:57: arr= array
{
pushFollow(FOLLOW_array_in_methodRef2699);
arr = array();
state._fsp--;
}
break;
}
if (((methodDeclaration_scope) methodDeclaration_stack.peek()).thisMethodIsDeprecated) {
return retval;
}
checkClassName((className28 != null ? className28.token : null));
// TEMPLATE REWRITE
// 870:5: ->
// methodReferenceTemplate(comment=$mq.qualifierHash.get(\"Description\")className=$className.textisArray=arr!=nullreferenceName=$nonReservedName.nrString)
{
retval.st = templateLib.getInstanceOf(
"methodReferenceTemplate",
new STAttrMap().put("comment", (mq != null ? mq.qualifierHash : null).get("Description"))
.put("className", (className28 != null ? input.toString(className28.start, className28.stop) : null))
.put("isArray", arr != null)
.put("referenceName", (nonReservedName29 != null ? nonReservedName29.nrString : null)));
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "methodRef"
public static class nonReservedName_return extends ParserRuleReturnScope {
public String nrString;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "nonReservedName"
// com\\kyben\\translatecim\\TranslateCIM.g:877:1: nonReservedName returns [ String nrString ] : Identifier ;
public final TranslateCIMParser.nonReservedName_return nonReservedName() throws RecognitionException {
TranslateCIMParser.nonReservedName_return retval = new TranslateCIMParser.nonReservedName_return();
retval.start = input.LT(1);
Token Identifier30 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:878:5: ( Identifier )
// com\\kyben\\translatecim\\TranslateCIM.g:878:7: Identifier
{
Identifier30 = (Token) match(input, Identifier, FOLLOW_Identifier_in_nonReservedName2875);
if (javaClasses.contains((Identifier30 != null ? Identifier30.getText() : null))) {
retval.nrString = "cim_" + (Identifier30 != null ? Identifier30.getText() : null);
} else {
retval.nrString = (Identifier30 != null ? Identifier30.getText() : null);
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
if (retval.nrString != null) {
retval.nrString = retval.nrString.substring(0, 1).toLowerCase() + retval.nrString.substring(1);
if (Arrays.asList(RESERVED_JAVA_WORDS).contains(retval.nrString)) {
retval.nrString = "_" + retval.nrString;
}
}
return retval;
}
// $ANTLR end "nonReservedName"
protected static class qualifierList_scope {
HashMap qh;
}
protected Stack qualifierList_stack = new Stack();
public static class qualifierList_return extends ParserRuleReturnScope {
public HashMap qualifierHash;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierList"
// com\\kyben\\translatecim\\TranslateCIM.g:889:1: qualifierList returns [ HashMap qualifierHash ] : LBRACK qualifier ( COMMA qualifier )* RBRACK
// ;
public final TranslateCIMParser.qualifierList_return qualifierList() throws RecognitionException {
qualifierList_stack.push(new qualifierList_scope());
TranslateCIMParser.qualifierList_return retval = new TranslateCIMParser.qualifierList_return();
retval.start = input.LT(1);
((qualifierList_scope) qualifierList_stack.peek()).qh = new HashMap();
// System.out.println("qualifierList: initializing");
try {
// com\\kyben\\translatecim\\TranslateCIM.g:897:9: ( LBRACK qualifier ( COMMA qualifier )* RBRACK )
// com\\kyben\\translatecim\\TranslateCIM.g:897:11: LBRACK qualifier ( COMMA qualifier )* RBRACK
{
match(input, LBRACK, FOLLOW_LBRACK_in_qualifierList2924);
pushFollow(FOLLOW_qualifier_in_qualifierList2926);
qualifier();
state._fsp--;
// com\\kyben\\translatecim\\TranslateCIM.g:897:28: ( COMMA qualifier )*
loop23: do {
int alt23 = 2;
int LA23_0 = input.LA(1);
if ((LA23_0 == COMMA)) {
alt23 = 1;
}
switch (alt23) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:897:29: COMMA qualifier
{
match(input, COMMA, FOLLOW_COMMA_in_qualifierList2929);
pushFollow(FOLLOW_qualifier_in_qualifierList2931);
qualifier();
state._fsp--;
}
break;
default:
break loop23;
}
} while (true);
match(input, RBRACK, FOLLOW_RBRACK_in_qualifierList2935);
// System.out.println("qualifierList: returning with qualifierHash set");
// printKeys(((qualifierList_scope)qualifierList_stack.peek()).qh); // dbg
// System.out.println("qualifierList: yo.");
retval.qualifierHash = ((qualifierList_scope) qualifierList_stack.peek()).qh;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
qualifierList_stack.pop();
}
return retval;
}
// $ANTLR end "qualifierList"
public static class qualifier_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifier"
// com\\kyben\\translatecim\\TranslateCIM.g:907:1: qualifier : Identifier (qp= qualifierParameter )? ( flavorList )? ;
public final TranslateCIMParser.qualifier_return qualifier() throws RecognitionException {
TranslateCIMParser.qualifier_return retval = new TranslateCIMParser.qualifier_return();
retval.start = input.LT(1);
Token Identifier31 = null;
TranslateCIMParser.qualifierParameter_return qp = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:908:5: ( Identifier (qp= qualifierParameter )? ( flavorList )? )
// com\\kyben\\translatecim\\TranslateCIM.g:908:7: Identifier (qp= qualifierParameter )? ( flavorList )?
{
Identifier31 = (Token) match(input, Identifier, FOLLOW_Identifier_in_qualifier2959);
// com\\kyben\\translatecim\\TranslateCIM.g:908:20: (qp= qualifierParameter )?
int alt24 = 2;
int LA24_0 = input.LA(1);
if ((LA24_0 == LPAREN || LA24_0 == LCURLY)) {
alt24 = 1;
}
switch (alt24) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:908:20: qp= qualifierParameter
{
pushFollow(FOLLOW_qualifierParameter_in_qualifier2963);
qp = qualifierParameter();
state._fsp--;
}
break;
}
// com\\kyben\\translatecim\\TranslateCIM.g:908:41: ( flavorList )?
int alt25 = 2;
int LA25_0 = input.LA(1);
if ((LA25_0 == COLON)) {
alt25 = 1;
}
switch (alt25) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:908:41: flavorList
{
pushFollow(FOLLOW_flavorList_in_qualifier2966);
flavorList();
state._fsp--;
}
break;
}
// System.out.println("qualifier: looking up " + (Identifier31!=null?Identifier31.getText():null).toLowerCase() +
// " in qualifierDefinitions");
qualifierDefinition qqDef = qualifierDefinitions.get((Identifier31 != null ? Identifier31.getText() : null).toLowerCase());
if (qqDef == null) {
RecognitionException r = new RecognitionException(input);
throw new UndefinedQualifierException(
currentInputFileName + "(" + r.line + ":" + r.charPositionInLine + ")" +
": qualifier " + (Identifier31 != null ? Identifier31.getText() : null) + " not defined");
}
((qualifierList_scope) qualifierList_stack.peek()).qh.put(qqDef.name, (qp == null) ? "" : qp.qualifierVal);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifier"
public static class qualifierParameter_return extends ParserRuleReturnScope {
public Object qualifierVal;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierParameter"
// com\\kyben\\translatecim\\TranslateCIM.g:923:1: qualifierParameter returns [ Object qualifierVal ] : ( ( LPAREN ( constantValue |
// stringConstant ) RPAREN ) | arrayInitializer );
public final TranslateCIMParser.qualifierParameter_return qualifierParameter() throws RecognitionException {
TranslateCIMParser.qualifierParameter_return retval = new TranslateCIMParser.qualifierParameter_return();
retval.start = input.LT(1);
TranslateCIMParser.stringConstant_return stringConstant32 = null;
TranslateCIMParser.arrayInitializer_return arrayInitializer33 = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:924:5: ( ( LPAREN ( constantValue | stringConstant ) RPAREN ) | arrayInitializer )
int alt27 = 2;
int LA27_0 = input.LA(1);
if ((LA27_0 == LPAREN)) {
alt27 = 1;
}
else if ((LA27_0 == LCURLY)) {
alt27 = 2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:924:7: ( LPAREN ( constantValue | stringConstant ) RPAREN )
{
// com\\kyben\\translatecim\\TranslateCIM.g:924:7: ( LPAREN ( constantValue | stringConstant ) RPAREN )
// com\\kyben\\translatecim\\TranslateCIM.g:924:9: LPAREN ( constantValue | stringConstant ) RPAREN
{
match(input, LPAREN, FOLLOW_LPAREN_in_qualifierParameter2997);
// com\\kyben\\translatecim\\TranslateCIM.g:924:16: ( constantValue | stringConstant )
int alt26 = 2;
int LA26_0 = input.LA(1);
if ((LA26_0 == IntegralConstant || (LA26_0 >= CharacterConstant && LA26_0 <= NULL))) {
alt26 = 1;
}
else if ((LA26_0 == DoubleQuotedString)) {
alt26 = 2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:924:18: constantValue
{
pushFollow(FOLLOW_constantValue_in_qualifierParameter3001);
constantValue();
state._fsp--;
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:924:34: stringConstant
{
pushFollow(FOLLOW_stringConstant_in_qualifierParameter3005);
stringConstant32 = stringConstant();
state._fsp--;
retval.qualifierVal = (stringConstant32 != null ? stringConstant32.string : null);
}
break;
}
match(input, RPAREN, FOLLOW_RPAREN_in_qualifierParameter3011);
}
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:925:7: arrayInitializer
{
pushFollow(FOLLOW_arrayInitializer_in_qualifierParameter3021);
arrayInitializer33 = arrayInitializer();
state._fsp--;
retval.qualifierVal = (arrayInitializer33 != null ? arrayInitializer33.initList : null);
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifierParameter"
public static class flavorList_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "flavorList"
// com\\kyben\\translatecim\\TranslateCIM.g:932:1: flavorList : COLON ( flavor )+ ;
public final TranslateCIMParser.flavorList_return flavorList() throws RecognitionException {
TranslateCIMParser.flavorList_return retval = new TranslateCIMParser.flavorList_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:933:5: ( COLON ( flavor )+ )
// com\\kyben\\translatecim\\TranslateCIM.g:933:7: COLON ( flavor )+
{
match(input, COLON, FOLLOW_COLON_in_flavorList3045);
// com\\kyben\\translatecim\\TranslateCIM.g:933:13: ( flavor )+
int cnt28 = 0;
loop28: do {
int alt28 = 2;
int LA28_0 = input.LA(1);
if (((LA28_0 >= ENABLEOVERRIDE && LA28_0 <= TRANSLATABLE))) {
alt28 = 1;
}
switch (alt28) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:933:13: flavor
{
pushFollow(FOLLOW_flavor_in_flavorList3047);
flavor();
state._fsp--;
}
break;
default:
if (cnt28 >= 1)
break loop28;
EarlyExitException eee =
new EarlyExitException(28, input);
throw eee;
}
cnt28++;
} while (true);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "flavorList"
public static class dataType_return extends ParserRuleReturnScope {
public StringTemplate defaultVal;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "dataType"
// com\\kyben\\translatecim\\TranslateCIM.g:937:1: dataType returns [ StringTemplate defaultVal ] : ( BOOLEAN -> booleanTemplate() | CHAR16 ->
// char16Template() | DATETIME -> datetimeTemplate() | REAL32 -> real32Template() | REAL64 -> real64Template() | SINT16 -> sint16Template() |
// SINT32 -> sint32Template() | SINT64 -> sint64Template() | SINT8 -> sint8Template() | STRING -> strTemplate() | UINT16 -> uint16Template() |
// UINT32 -> uint32Template() | UINT64 -> uint64Template() | UINT8 -> uint8Template());
public final TranslateCIMParser.dataType_return dataType() throws RecognitionException {
TranslateCIMParser.dataType_return retval = new TranslateCIMParser.dataType_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:941:5: ( BOOLEAN -> booleanTemplate() | CHAR16 -> char16Template() | DATETIME ->
// datetimeTemplate() | REAL32 -> real32Template() | REAL64 -> real64Template() | SINT16 -> sint16Template() | SINT32 -> sint32Template()
// | SINT64 -> sint64Template() | SINT8 -> sint8Template() | STRING -> strTemplate() | UINT16 -> uint16Template() | UINT32 ->
// uint32Template() | UINT64 -> uint64Template() | UINT8 -> uint8Template())
int alt29 = 14;
switch (input.LA(1)) {
case BOOLEAN: {
alt29 = 1;
}
break;
case CHAR16: {
alt29 = 2;
}
break;
case DATETIME: {
alt29 = 3;
}
break;
case REAL32: {
alt29 = 4;
}
break;
case REAL64: {
alt29 = 5;
}
break;
case SINT16: {
alt29 = 6;
}
break;
case SINT32: {
alt29 = 7;
}
break;
case SINT64: {
alt29 = 8;
}
break;
case SINT8: {
alt29 = 9;
}
break;
case STRING: {
alt29 = 10;
}
break;
case UINT16: {
alt29 = 11;
}
break;
case UINT32: {
alt29 = 12;
}
break;
case UINT64: {
alt29 = 13;
}
break;
case UINT8: {
alt29 = 14;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 29, 0, input);
throw nvae;
}
switch (alt29) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:941:7: BOOLEAN
{
match(input, BOOLEAN, FOLLOW_BOOLEAN_in_dataType3073);
retval.defaultVal = templateLib.getInstanceOf("booleanDefaultValueTemplate");
// TEMPLATE REWRITE
// 941:93: -> booleanTemplate()
{
retval.st = templateLib.getInstanceOf("booleanTemplate");
}
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:942:7: CHAR16
{
match(input, CHAR16, FOLLOW_CHAR16_in_dataType3090);
retval.defaultVal = templateLib.getInstanceOf("char16DefaultValueTemplate");
// TEMPLATE REWRITE
// 942:93: -> char16Template()
{
retval.st = templateLib.getInstanceOf("char16Template");
}
}
break;
case 3:
// com\\kyben\\translatecim\\TranslateCIM.g:943:7: DATETIME
{
match(input, DATETIME, FOLLOW_DATETIME_in_dataType3108);
retval.defaultVal = templateLib.getInstanceOf("datetimeDefaultValueTemplate");
// TEMPLATE REWRITE
// 943:93: -> datetimeTemplate()
{
retval.st = templateLib.getInstanceOf("datetimeTemplate");
}
}
break;
case 4:
// com\\kyben\\translatecim\\TranslateCIM.g:944:7: REAL32
{
match(input, REAL32, FOLLOW_REAL32_in_dataType3124);
retval.defaultVal = templateLib.getInstanceOf("real32DefaultValueTemplate");
// TEMPLATE REWRITE
// 944:93: -> real32Template()
{
retval.st = templateLib.getInstanceOf("real32Template");
}
}
break;
case 5:
// com\\kyben\\translatecim\\TranslateCIM.g:945:7: REAL64
{
match(input, REAL64, FOLLOW_REAL64_in_dataType3142);
retval.defaultVal = templateLib.getInstanceOf("real64DefaultValueTemplate");
// TEMPLATE REWRITE
// 945:93: -> real64Template()
{
retval.st = templateLib.getInstanceOf("real64Template");
}
}
break;
case 6:
// com\\kyben\\translatecim\\TranslateCIM.g:946:7: SINT16
{
match(input, SINT16, FOLLOW_SINT16_in_dataType3160);
retval.defaultVal = templateLib.getInstanceOf("sint16DefaultValueTemplate");
// TEMPLATE REWRITE
// 946:93: -> sint16Template()
{
retval.st = templateLib.getInstanceOf("sint16Template");
}
}
break;
case 7:
// com\\kyben\\translatecim\\TranslateCIM.g:947:7: SINT32
{
match(input, SINT32, FOLLOW_SINT32_in_dataType3178);
retval.defaultVal = templateLib.getInstanceOf("sint32DefaultValueTemplate");
// TEMPLATE REWRITE
// 947:93: -> sint32Template()
{
retval.st = templateLib.getInstanceOf("sint32Template");
}
}
break;
case 8:
// com\\kyben\\translatecim\\TranslateCIM.g:948:7: SINT64
{
match(input, SINT64, FOLLOW_SINT64_in_dataType3196);
retval.defaultVal = templateLib.getInstanceOf("sint64DefaultValueTemplate");
// TEMPLATE REWRITE
// 948:93: -> sint64Template()
{
retval.st = templateLib.getInstanceOf("sint64Template");
}
}
break;
case 9:
// com\\kyben\\translatecim\\TranslateCIM.g:949:7: SINT8
{
match(input, SINT8, FOLLOW_SINT8_in_dataType3214);
retval.defaultVal = templateLib.getInstanceOf("sint8DefaultValueTemplate");
// TEMPLATE REWRITE
// 949:93: -> sint8Template()
{
retval.st = templateLib.getInstanceOf("sint8Template");
}
}
break;
case 10:
// com\\kyben\\translatecim\\TranslateCIM.g:950:7: STRING
{
match(input, STRING, FOLLOW_STRING_in_dataType3233);
retval.defaultVal = templateLib.getInstanceOf("strDefaultValueTemplate");
// TEMPLATE REWRITE
// 950:93: -> strTemplate()
{
retval.st = templateLib.getInstanceOf("strTemplate");
}
}
break;
case 11:
// com\\kyben\\translatecim\\TranslateCIM.g:951:7: UINT16
{
match(input, UINT16, FOLLOW_UINT16_in_dataType3251);
retval.defaultVal = templateLib.getInstanceOf("uint16DefaultValueTemplate");
// TEMPLATE REWRITE
// 951:93: -> uint16Template()
{
retval.st = templateLib.getInstanceOf("uint16Template");
}
}
break;
case 12:
// com\\kyben\\translatecim\\TranslateCIM.g:952:7: UINT32
{
match(input, UINT32, FOLLOW_UINT32_in_dataType3269);
retval.defaultVal = templateLib.getInstanceOf("uint32DefaultValueTemplate");
// TEMPLATE REWRITE
// 952:93: -> uint32Template()
{
retval.st = templateLib.getInstanceOf("uint32Template");
}
}
break;
case 13:
// com\\kyben\\translatecim\\TranslateCIM.g:953:7: UINT64
{
match(input, UINT64, FOLLOW_UINT64_in_dataType3287);
retval.defaultVal = templateLib.getInstanceOf("uint64DefaultValueTemplate");
// TEMPLATE REWRITE
// 953:93: -> uint64Template()
{
retval.st = templateLib.getInstanceOf("uint64Template");
}
}
break;
case 14:
// com\\kyben\\translatecim\\TranslateCIM.g:954:7: UINT8
{
match(input, UINT8, FOLLOW_UINT8_in_dataType3305);
retval.defaultVal = templateLib.getInstanceOf("uint8DefaultValueTemplate");
// TEMPLATE REWRITE
// 954:93: -> uint8Template()
{
retval.st = templateLib.getInstanceOf("uint8Template");
}
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "dataType"
public static class array_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "array"
// com\\kyben\\translatecim\\TranslateCIM.g:958:1: array : LBRACK ( IntegralConstant )? RBRACK ;
public final TranslateCIMParser.array_return array() throws RecognitionException {
TranslateCIMParser.array_return retval = new TranslateCIMParser.array_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:959:5: ( LBRACK ( IntegralConstant )? RBRACK )
// com\\kyben\\translatecim\\TranslateCIM.g:959:7: LBRACK ( IntegralConstant )? RBRACK
{
match(input, LBRACK, FOLLOW_LBRACK_in_array3334);
// com\\kyben\\translatecim\\TranslateCIM.g:959:14: ( IntegralConstant )?
int alt30 = 2;
int LA30_0 = input.LA(1);
if ((LA30_0 == IntegralConstant)) {
alt30 = 1;
}
switch (alt30) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:959:14: IntegralConstant
{
match(input, IntegralConstant, FOLLOW_IntegralConstant_in_array3336);
}
break;
}
match(input, RBRACK, FOLLOW_RBRACK_in_array3339);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "array"
public static class qualifierInitializer_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "qualifierInitializer"
// com\\kyben\\translatecim\\TranslateCIM.g:963:1: qualifierInitializer : ( constantValue | DoubleQuotedString );
public final TranslateCIMParser.qualifierInitializer_return qualifierInitializer() throws RecognitionException {
TranslateCIMParser.qualifierInitializer_return retval = new TranslateCIMParser.qualifierInitializer_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:964:5: ( constantValue | DoubleQuotedString )
int alt31 = 2;
int LA31_0 = input.LA(1);
if ((LA31_0 == IntegralConstant || (LA31_0 >= CharacterConstant && LA31_0 <= NULL))) {
alt31 = 1;
}
else if ((LA31_0 == DoubleQuotedString)) {
alt31 = 2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 31, 0, input);
throw nvae;
}
switch (alt31) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:964:7: constantValue
{
pushFollow(FOLLOW_constantValue_in_qualifierInitializer3365);
constantValue();
state._fsp--;
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:965:7: DoubleQuotedString
{
match(input, DoubleQuotedString, FOLLOW_DoubleQuotedString_in_qualifierInitializer3373);
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "qualifierInitializer"
public static class initializer_return extends ParserRuleReturnScope {
public ArrayList<String> initializerList;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "initializer"
// com\\kyben\\translatecim\\TranslateCIM.g:969:1: initializer returns [ ArrayList<String> initializerList ] : ( constantValue |
// DoubleQuotedString | arrayInitializer | cimReferenceInitializer= referenceInitializer );
public final TranslateCIMParser.initializer_return initializer() throws RecognitionException {
TranslateCIMParser.initializer_return retval = new TranslateCIMParser.initializer_return();
retval.start = input.LT(1);
Token DoubleQuotedString35 = null;
TranslateCIMParser.referenceInitializer_return cimReferenceInitializer = null;
TranslateCIMParser.constantValue_return constantValue34 = null;
TranslateCIMParser.arrayInitializer_return arrayInitializer36 = null;
retval.initializerList = new ArrayList<String>();
// System.out.println("initializer: called");
try {
// com\\kyben\\translatecim\\TranslateCIM.g:974:5: ( constantValue | DoubleQuotedString | arrayInitializer | cimReferenceInitializer=
// referenceInitializer )
int alt32 = 4;
switch (input.LA(1)) {
case IntegralConstant:
case CharacterConstant:
case TRUE:
case FALSE:
case NULL: {
alt32 = 1;
}
break;
case DoubleQuotedString: {
alt32 = 2;
}
break;
case LCURLY: {
alt32 = 3;
}
break;
case DOLLAR: {
alt32 = 4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 32, 0, input);
throw nvae;
}
switch (alt32) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:974:7: constantValue
{
pushFollow(FOLLOW_constantValue_in_initializer3404);
constantValue34 = constantValue();
state._fsp--;
retval.initializerList.add((constantValue34 != null ? input.toString(constantValue34.start, constantValue34.stop) : null));
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:978:7: DoubleQuotedString
{
DoubleQuotedString35 = (Token) match(input, DoubleQuotedString, FOLLOW_DoubleQuotedString_in_initializer3418);
retval.initializerList.add((DoubleQuotedString35 != null ? DoubleQuotedString35.getText() : null));
}
break;
case 3:
// com\\kyben\\translatecim\\TranslateCIM.g:982:7: arrayInitializer
{
pushFollow(FOLLOW_arrayInitializer_in_initializer3432);
arrayInitializer36 = arrayInitializer();
state._fsp--;
retval.initializerList = (arrayInitializer36 != null ? arrayInitializer36.initList : null);
}
break;
case 4:
// com\\kyben\\translatecim\\TranslateCIM.g:986:7: cimReferenceInitializer= referenceInitializer
{
pushFollow(FOLLOW_referenceInitializer_in_initializer3450);
cimReferenceInitializer = referenceInitializer();
state._fsp--;
retval.initializerList.add((cimReferenceInitializer != null ? input.toString(cimReferenceInitializer.start,
cimReferenceInitializer.stop) : null));
}
break;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "initializer"
public static class arrayInitializer_return extends ParserRuleReturnScope {
public ArrayList<String> initList;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "arrayInitializer"
// com\\kyben\\translatecim\\TranslateCIM.g:993:1: arrayInitializer returns [ ArrayList<String> initList] : LCURLY (c1= constantValue | s1=
// stringConstant ) ( COMMA (c2= constantValue | s2= stringConstant ) )* RCURLY ;
public final TranslateCIMParser.arrayInitializer_return arrayInitializer() throws RecognitionException {
TranslateCIMParser.arrayInitializer_return retval = new TranslateCIMParser.arrayInitializer_return();
retval.start = input.LT(1);
TranslateCIMParser.constantValue_return c1 = null;
TranslateCIMParser.stringConstant_return s1 = null;
TranslateCIMParser.constantValue_return c2 = null;
TranslateCIMParser.stringConstant_return s2 = null;
retval.initList = new ArrayList<String>();
try {
// com\\kyben\\translatecim\\TranslateCIM.g:997:5: ( LCURLY (c1= constantValue | s1= stringConstant ) ( COMMA (c2= constantValue | s2=
// stringConstant ) )* RCURLY )
// com\\kyben\\translatecim\\TranslateCIM.g:997:7: LCURLY (c1= constantValue | s1= stringConstant ) ( COMMA (c2= constantValue | s2=
// stringConstant ) )* RCURLY
{
match(input, LCURLY, FOLLOW_LCURLY_in_arrayInitializer3487);
// com\\kyben\\translatecim\\TranslateCIM.g:997:15: (c1= constantValue | s1= stringConstant )
int alt33 = 2;
int LA33_0 = input.LA(1);
if ((LA33_0 == IntegralConstant || (LA33_0 >= CharacterConstant && LA33_0 <= NULL))) {
alt33 = 1;
}
else if ((LA33_0 == DoubleQuotedString)) {
alt33 = 2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:997:17: c1= constantValue
{
pushFollow(FOLLOW_constantValue_in_arrayInitializer3494);
c1 = constantValue();
state._fsp--;
retval.initList.add((c1 != null ? input.toString(c1.start, c1.stop) : null));
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:997:63: s1= stringConstant
{
pushFollow(FOLLOW_stringConstant_in_arrayInitializer3502);
s1 = stringConstant();
state._fsp--;
retval.initList.add((s1 != null ? s1.string : null));
}
break;
}
// com\\kyben\\translatecim\\TranslateCIM.g:998:7: ( COMMA (c2= constantValue | s2= stringConstant ) )*
loop35: do {
int alt35 = 2;
int LA35_0 = input.LA(1);
if ((LA35_0 == COMMA)) {
alt35 = 1;
}
switch (alt35) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:998:9: COMMA (c2= constantValue | s2= stringConstant )
{
match(input, COMMA, FOLLOW_COMMA_in_arrayInitializer3516);
// com\\kyben\\translatecim\\TranslateCIM.g:998:15: (c2= constantValue | s2= stringConstant )
int alt34 = 2;
int LA34_0 = input.LA(1);
if ((LA34_0 == IntegralConstant || (LA34_0 >= CharacterConstant && LA34_0 <= NULL))) {
alt34 = 1;
}
else if ((LA34_0 == DoubleQuotedString)) {
alt34 = 2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 34, 0, input);
throw nvae;
}
switch (alt34) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:998:17: c2= constantValue
{
pushFollow(FOLLOW_constantValue_in_arrayInitializer3522);
c2 = constantValue();
state._fsp--;
retval.initList.add((c2 != null ? input.toString(c2.start, c2.stop) : null));
}
break;
case 2:
// com\\kyben\\translatecim\\TranslateCIM.g:998:63: s2= stringConstant
{
pushFollow(FOLLOW_stringConstant_in_arrayInitializer3530);
s2 = stringConstant();
state._fsp--;
retval.initList.add((s2 != null ? s2.string : null));
}
break;
}
}
break;
default:
break loop35;
}
} while (true);
match(input, RCURLY, FOLLOW_RCURLY_in_arrayInitializer3539);
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "arrayInitializer"
public static class constantValue_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "constantValue"
// com\\kyben\\translatecim\\TranslateCIM.g:1002:1: constantValue : ( IntegralConstant | CharacterConstant | TRUE | FALSE | NULL ) ;
public final TranslateCIMParser.constantValue_return constantValue() throws RecognitionException {
TranslateCIMParser.constantValue_return retval = new TranslateCIMParser.constantValue_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:1006:5: ( ( IntegralConstant | CharacterConstant | TRUE | FALSE | NULL ) )
// com\\kyben\\translatecim\\TranslateCIM.g:1006:7: ( IntegralConstant | CharacterConstant | TRUE | FALSE | NULL )
{
if (input.LA(1) == IntegralConstant || (input.LA(1) >= CharacterConstant && input.LA(1) <= NULL)) {
input.consume();
state.errorRecovery = false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null, input);
throw mse;
}
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "constantValue"
public static class referenceInitializer_return extends ParserRuleReturnScope {
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "referenceInitializer"
// com\\kyben\\translatecim\\TranslateCIM.g:1015:1: referenceInitializer : aliasIdentifier ;
public final TranslateCIMParser.referenceInitializer_return referenceInitializer() throws RecognitionException {
TranslateCIMParser.referenceInitializer_return retval = new TranslateCIMParser.referenceInitializer_return();
retval.start = input.LT(1);
try {
// com\\kyben\\translatecim\\TranslateCIM.g:1016:5: ( aliasIdentifier )
// com\\kyben\\translatecim\\TranslateCIM.g:1016:7: aliasIdentifier
{
pushFollow(FOLLOW_aliasIdentifier_in_referenceInitializer3636);
aliasIdentifier();
state._fsp--;
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "referenceInitializer"
public static class stringConstant_return extends ParserRuleReturnScope {
public String string;
public StringTemplate st;
@Override
public Object getTemplate() {
return st;
}
@Override
public String toString() {
return st == null ? null : st.toString();
}
};
// $ANTLR start "stringConstant"
// com\\kyben\\translatecim\\TranslateCIM.g:1020:1: stringConstant returns [String string] : (strs+= DoubleQuotedString )+ ;
public final TranslateCIMParser.stringConstant_return stringConstant() throws RecognitionException {
TranslateCIMParser.stringConstant_return retval = new TranslateCIMParser.stringConstant_return();
retval.start = input.LT(1);
Token strs = null;
List list_strs = null;
try {
// com\\kyben\\translatecim\\TranslateCIM.g:1021:5: ( (strs+= DoubleQuotedString )+ )
// com\\kyben\\translatecim\\TranslateCIM.g:1021:7: (strs+= DoubleQuotedString )+
{
// com\\kyben\\translatecim\\TranslateCIM.g:1021:11: (strs+= DoubleQuotedString )+
int cnt36 = 0;
loop36: do {
int alt36 = 2;
int LA36_0 = input.LA(1);
if ((LA36_0 == DoubleQuotedString)) {
alt36 = 1;
}
switch (alt36) {
case 1:
// com\\kyben\\translatecim\\TranslateCIM.g:1021:11: strs+= DoubleQuotedString
{
strs = (Token) match(input, DoubleQuotedString, FOLLOW_DoubleQuotedString_in_stringConstant3660);
if (list_strs == null)
list_strs = new ArrayList();
list_strs.add(strs);
}
break;
default:
if (cnt36 >= 1)
break loop36;
EarlyExitException eee =
new EarlyExitException(36, input);
throw eee;
}
cnt36++;
} while (true);
StringBuilder retstr = new StringBuilder(list_strs.size() * 60); // for speed, estimate the initial size
ListIterator lstrs = list_strs.listIterator();
while (lstrs.hasNext()) {
String dqString = ((Token) lstrs.next()).getText();
String bareString = dqString.substring(1, dqString.length() - 1); // strip off the leading and trailing double quotes
bareString = bareString.replaceAll("\\\\'", "'");
bareString = bareString.replaceAll("\\\\\"", "\"");
bareString = bareString.replaceAll("\\\\n", "\n");
retstr.append(bareString);
}
retval.string = retstr.toString();
}
retval.stop = input.LT(-1);
} catch (RecognitionException re) {
reportError(re);
recover(input, re);
} finally {
}
return retval;
}
// $ANTLR end "stringConstant"
// Delegated rules
protected DFA12 dfa12 = new DFA12(this);
protected DFA18 dfa18 = new DFA18(this);
static final String DFA12_eotS =
"\23\uffff";
static final String DFA12_eofS =
"\23\uffff";
static final String DFA12_minS =
"\17\11\1\uffff\1\10\2\uffff";
static final String DFA12_maxS =
"\1\57\16\11\1\uffff\1\40\2\uffff";
static final String DFA12_acceptS =
"\17\uffff\1\2\1\uffff\1\1\1\3";
static final String DFA12_specialS =
"\23\uffff}>";
static final String[] DFA12_transitionS = {
"\1\17\30\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1" +
"\13\1\14\1\15\1\16",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"\1\20",
"",
"\1\21\1\uffff\1\21\2\uffff\1\22\22\uffff\1\21",
"",
""
};
static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
static final short[][] DFA12_transition;
static {
int numStates = DFA12_transitionS.length;
DFA12_transition = new short[numStates][];
for (int i = 0; i < numStates; i++) {
DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
}
}
class DFA12 extends DFA {
public DFA12(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 12;
this.eot = DFA12_eot;
this.eof = DFA12_eof;
this.min = DFA12_min;
this.max = DFA12_max;
this.accept = DFA12_accept;
this.special = DFA12_special;
this.transition = DFA12_transition;
}
@Override
public String getDescription() {
return "622:1: featureBodyDeclaration returns [ String strng ] : ( dataPropertyDeclaration | referencePropertyDeclaration | methodDeclaration );";
}
}
static final String DFA18_eotS =
"\42\uffff";
static final String DFA18_eofS =
"\42\uffff";
static final String DFA18_minS =
"\2\11\2\uffff\1\7\2\60\1\26\2\11\2\16\3\13\2\7\1\60\1\7\2\60\1" +
"\26\2\13\2\16\3\13\1\7\1\60\1\7\2\13";
static final String DFA18_maxS =
"\1\57\1\11\2\uffff\1\41\2\65\1\32\1\11\1\57\1\16\1\61\1\34\1\61" +
"\3\41\1\65\1\41\2\65\1\32\1\34\1\61\1\16\1\61\1\34\1\61\2\41\1\65" +
"\1\41\1\34\1\61";
static final String DFA18_acceptS =
"\2\uffff\1\1\1\2\36\uffff";
static final String DFA18_specialS =
"\42\uffff}>";
static final String[] DFA18_transitionS = {
"\1\3\26\uffff\1\1\1\uffff\16\2",
"\1\4",
"",
"",
"\1\7\3\uffff\1\10\1\uffff\1\5\15\uffff\1\6\5\uffff\1\11",
"\1\12\1\13\4\12",
"\1\14\1\15\4\14",
"\5\16",
"\1\17",
"\1\3\30\uffff\16\2",
"\1\20",
"\1\20\42\uffff\1\13",
"\1\21\20\uffff\1\22",
"\1\21\20\uffff\1\22\24\uffff\1\15",
"\1\10\12\uffff\5\16\6\uffff\1\11",
"\1\25\3\uffff\1\10\1\uffff\1\23\15\uffff\1\24\5\uffff\1\11",
"\1\7\3\uffff\1\10\25\uffff\1\11",
"\1\26\1\27\4\26",
"\1\7\3\uffff\1\10\25\uffff\1\11",
"\1\30\1\31\4\30",
"\1\32\1\33\4\32",
"\5\34",
"\1\21\20\uffff\1\22",
"\1\21\20\uffff\1\22\24\uffff\1\27",
"\1\35",
"\1\35\42\uffff\1\31",
"\1\36\20\uffff\1\37",
"\1\36\20\uffff\1\37\24\uffff\1\33",
"\1\10\12\uffff\5\34\6\uffff\1\11",
"\1\25\3\uffff\1\10\25\uffff\1\11",
"\1\40\1\41\4\40",
"\1\25\3\uffff\1\10\25\uffff\1\11",
"\1\36\20\uffff\1\37",
"\1\36\20\uffff\1\37\24\uffff\1\41"
};
static final short[] DFA18_eot = DFA.unpackEncodedString(DFA18_eotS);
static final short[] DFA18_eof = DFA.unpackEncodedString(DFA18_eofS);
static final char[] DFA18_min = DFA.unpackEncodedStringToUnsignedChars(DFA18_minS);
static final char[] DFA18_max = DFA.unpackEncodedStringToUnsignedChars(DFA18_maxS);
static final short[] DFA18_accept = DFA.unpackEncodedString(DFA18_acceptS);
static final short[] DFA18_special = DFA.unpackEncodedString(DFA18_specialS);
static final short[][] DFA18_transition;
static {
int numStates = DFA18_transitionS.length;
DFA18_transition = new short[numStates][];
for (int i = 0; i < numStates; i++) {
DFA18_transition[i] = DFA.unpackEncodedString(DFA18_transitionS[i]);
}
}
class DFA18 extends DFA {
public DFA18(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 18;
this.eot = DFA18_eot;
this.eof = DFA18_eof;
this.min = DFA18_min;
this.max = DFA18_max;
this.accept = DFA18_accept;
this.special = DFA18_special;
this.transition = DFA18_transition;
}
@Override
public String getDescription() {
return "841:1: methodParameter : ( methodParm | methodRef );";
}
}
public static final BitSet FOLLOW_mofProduction_in_mofSpecification133 = new BitSet(new long[] { 0x0000000100000072L });
public static final BitSet FOLLOW_compilerDirective_in_mofProduction162 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_qualifierDeclaration_in_mofProduction170 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_classDeclaration_in_mofProduction178 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_PragmaInclude_in_compilerDirective208 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_PragmaLocale_in_compilerDirective222 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_QUALIFIER_in_qualifierDeclaration243 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_qualifierName_in_qualifierDeclaration245 = new BitSet(new long[] { 0x0000000000000080L });
public static final BitSet FOLLOW_COLON_in_qualifierDeclaration247 = new BitSet(new long[] { 0x0000FFFC00000000L });
public static final BitSet FOLLOW_qualifierType_in_qualifierDeclaration249 = new BitSet(new long[] { 0x0000000000000800L });
public static final BitSet FOLLOW_qualifierScopeList_in_qualifierDeclaration251 = new BitSet(new long[] { 0x0000000000000900L });
public static final BitSet FOLLOW_qualifierFlavorList_in_qualifierDeclaration257 = new BitSet(new long[] { 0x0000000000000100L });
public static final BitSet FOLLOW_SEMICOLON_in_qualifierDeclaration262 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_Identifier_in_qualifierName286 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_dataType_in_qualifierType317 = new BitSet(new long[] { 0x0000000100000402L });
public static final BitSet FOLLOW_array_in_qualifierType320 = new BitSet(new long[] { 0x0000000000000402L });
public static final BitSet FOLLOW_EQUALS_in_qualifierType327 = new BitSet(new long[] { 0x003F000000000000L });
public static final BitSet FOLLOW_qualifierInitializer_in_qualifierType331 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_COMMA_in_qualifierScopeList371 = new BitSet(new long[] { 0x0000000000001000L });
public static final BitSet FOLLOW_SCOPE_in_qualifierScopeList373 = new BitSet(new long[] { 0x0000000000002000L });
public static final BitSet FOLLOW_LPAREN_in_qualifierScopeList375 = new BitSet(new long[] { 0x00000000001F8200L });
public static final BitSet FOLLOW_metaElement_in_qualifierScopeList379 = new BitSet(new long[] { 0x0000000000004800L });
public static final BitSet FOLLOW_COMMA_in_qualifierScopeList402 = new BitSet(new long[] { 0x00000000001F8200L });
public static final BitSet FOLLOW_metaElement_in_qualifierScopeList406 = new BitSet(new long[] { 0x0000000000004800L });
public static final BitSet FOLLOW_RPAREN_in_qualifierScopeList412 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_set_in_metaElement431 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_COMMA_in_qualifierFlavorList546 = new BitSet(new long[] { 0x0000000000200000L });
public static final BitSet FOLLOW_FLAVOR_in_qualifierFlavorList548 = new BitSet(new long[] { 0x0000000000002000L });
public static final BitSet FOLLOW_LPAREN_in_qualifierFlavorList550 = new BitSet(new long[] { 0x0000000007C00000L });
public static final BitSet FOLLOW_flavor_in_qualifierFlavorList554 = new BitSet(new long[] { 0x0000000000004800L });
public static final BitSet FOLLOW_COMMA_in_qualifierFlavorList578 = new BitSet(new long[] { 0x0000000007C00000L });
public static final BitSet FOLLOW_flavor_in_qualifierFlavorList582 = new BitSet(new long[] { 0x0000000000004800L });
public static final BitSet FOLLOW_RPAREN_in_qualifierFlavorList589 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_set_in_flavor0 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_classDeclarationHeader_in_classDeclaration686 = new BitSet(new long[] { 0x0000000028000080L });
public static final BitSet FOLLOW_classDeclarationTrailer_in_classDeclaration688 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_qualifierList_in_classDeclarationHeader1182 = new BitSet(new long[] { 0x0000000000010000L });
public static final BitSet FOLLOW_CLASS_in_classDeclarationHeader1184 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_className_in_classDeclarationHeader1186 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_alias_in_classDeclarationTrailer1223 = new BitSet(new long[] { 0x0000000008000080L });
public static final BitSet FOLLOW_superClass_in_classDeclarationTrailer1230 = new BitSet(new long[] { 0x0000000008000000L });
public static final BitSet FOLLOW_LCURLY_in_classDeclarationTrailer1235 = new BitSet(new long[] { 0x0000FFFD10000270L });
public static final BitSet FOLLOW_classFeature_in_classDeclarationTrailer1237 = new BitSet(new long[] { 0x0000FFFD10000270L });
public static final BitSet FOLLOW_RCURLY_in_classDeclarationTrailer1240 = new BitSet(new long[] { 0x0000000000000100L });
public static final BitSet FOLLOW_SEMICOLON_in_classDeclarationTrailer1242 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_Identifier_in_className1270 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_AS_in_alias1294 = new BitSet(new long[] { 0x0000000040000000L });
public static final BitSet FOLLOW_aliasIdentifier_in_alias1296 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_DOLLAR_in_aliasIdentifier1314 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_Identifier_in_aliasIdentifier1316 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_COLON_in_superClass1338 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_className_in_superClass1340 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_classFeaturePiece_in_classFeature1367 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_qualifierList_in_classFeaturePiece1402 = new BitSet(new long[] { 0x0000FFFD00000270L });
public static final BitSet FOLLOW_featureBodyDeclaration_in_classFeaturePiece1406 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_dataPropertyDeclaration_in_featureBodyDeclaration1521 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_referencePropertyDeclaration_in_featureBodyDeclaration1535 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_methodDeclaration_in_featureBodyDeclaration1549 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_dataType_in_dataPropertyDeclaration1590 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_nonReservedName_in_dataPropertyDeclaration1592 = new BitSet(new long[] { 0x0000000100000500L });
public static final BitSet FOLLOW_array_in_dataPropertyDeclaration1598 = new BitSet(new long[] { 0x0000000000000500L });
public static final BitSet FOLLOW_EQUALS_in_dataPropertyDeclaration1604 = new BitSet(new long[] { 0x003F000048000000L });
public static final BitSet FOLLOW_initializer_in_dataPropertyDeclaration1608 = new BitSet(new long[] { 0x0000000000000100L });
public static final BitSet FOLLOW_SEMICOLON_in_dataPropertyDeclaration1613 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_className_in_referencePropertyDeclaration1938 = new BitSet(new long[] { 0x0000000080000000L });
public static final BitSet FOLLOW_REF_in_referencePropertyDeclaration1940 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_nonReservedName_in_referencePropertyDeclaration1942 = new BitSet(new long[] { 0x0000000100000100L });
public static final BitSet FOLLOW_array_in_referencePropertyDeclaration1948 = new BitSet(new long[] { 0x0000000000000100L });
public static final BitSet FOLLOW_SEMICOLON_in_referencePropertyDeclaration1953 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_dataType_in_methodDeclaration2163 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_methodName_in_methodDeclaration2165 = new BitSet(new long[] { 0x0000000000002000L });
public static final BitSet FOLLOW_LPAREN_in_methodDeclaration2167 = new BitSet(new long[] { 0x0000FFFD00004270L });
public static final BitSet FOLLOW_methodParameterList_in_methodDeclaration2170 = new BitSet(new long[] { 0x0000000000004000L });
public static final BitSet FOLLOW_RPAREN_in_methodDeclaration2175 = new BitSet(new long[] { 0x0000000000000100L });
public static final BitSet FOLLOW_SEMICOLON_in_methodDeclaration2177 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_Identifier_in_methodName2396 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_methodParameter_in_methodParameterList2431 = new BitSet(new long[] { 0x0000000000000802L });
public static final BitSet FOLLOW_COMMA_in_methodParameterList2434 = new BitSet(new long[] { 0x0000FFFD00000270L });
public static final BitSet FOLLOW_methodParameter_in_methodParameterList2436 = new BitSet(new long[] { 0x0000000000000802L });
public static final BitSet FOLLOW_methodParm_in_methodParameter2469 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_methodRef_in_methodParameter2483 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_qualifierList_in_methodParm2509 = new BitSet(new long[] { 0x0000FFFC00000000L });
public static final BitSet FOLLOW_dataType_in_methodParm2512 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_nonReservedName_in_methodParm2514 = new BitSet(new long[] { 0x0000000100000002L });
public static final BitSet FOLLOW_array_in_methodParm2520 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_qualifierList_in_methodRef2686 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_className_in_methodRef2689 = new BitSet(new long[] { 0x0000000080000000L });
public static final BitSet FOLLOW_REF_in_methodRef2691 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_nonReservedName_in_methodRef2693 = new BitSet(new long[] { 0x0000000100000002L });
public static final BitSet FOLLOW_array_in_methodRef2699 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_Identifier_in_nonReservedName2875 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_LBRACK_in_qualifierList2924 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_qualifier_in_qualifierList2926 = new BitSet(new long[] { 0x0000000200000800L });
public static final BitSet FOLLOW_COMMA_in_qualifierList2929 = new BitSet(new long[] { 0x0000000000000200L });
public static final BitSet FOLLOW_qualifier_in_qualifierList2931 = new BitSet(new long[] { 0x0000000200000800L });
public static final BitSet FOLLOW_RBRACK_in_qualifierList2935 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_Identifier_in_qualifier2959 = new BitSet(new long[] { 0x0000000008002082L });
public static final BitSet FOLLOW_qualifierParameter_in_qualifier2963 = new BitSet(new long[] { 0x0000000000000082L });
public static final BitSet FOLLOW_flavorList_in_qualifier2966 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_LPAREN_in_qualifierParameter2997 = new BitSet(new long[] { 0x003F000000000000L });
public static final BitSet FOLLOW_constantValue_in_qualifierParameter3001 = new BitSet(new long[] { 0x0000000000004000L });
public static final BitSet FOLLOW_stringConstant_in_qualifierParameter3005 = new BitSet(new long[] { 0x0000000000004000L });
public static final BitSet FOLLOW_RPAREN_in_qualifierParameter3011 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_arrayInitializer_in_qualifierParameter3021 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_COLON_in_flavorList3045 = new BitSet(new long[] { 0x0000000007C00000L });
public static final BitSet FOLLOW_flavor_in_flavorList3047 = new BitSet(new long[] { 0x0000000007C00002L });
public static final BitSet FOLLOW_BOOLEAN_in_dataType3073 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_CHAR16_in_dataType3090 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_DATETIME_in_dataType3108 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_REAL32_in_dataType3124 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_REAL64_in_dataType3142 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_SINT16_in_dataType3160 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_SINT32_in_dataType3178 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_SINT64_in_dataType3196 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_SINT8_in_dataType3214 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_STRING_in_dataType3233 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_UINT16_in_dataType3251 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_UINT32_in_dataType3269 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_UINT64_in_dataType3287 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_UINT8_in_dataType3305 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_LBRACK_in_array3334 = new BitSet(new long[] { 0x0001000200000000L });
public static final BitSet FOLLOW_IntegralConstant_in_array3336 = new BitSet(new long[] { 0x0000000200000000L });
public static final BitSet FOLLOW_RBRACK_in_array3339 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_constantValue_in_qualifierInitializer3365 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_DoubleQuotedString_in_qualifierInitializer3373 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_constantValue_in_initializer3404 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_DoubleQuotedString_in_initializer3418 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_arrayInitializer_in_initializer3432 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_referenceInitializer_in_initializer3450 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_LCURLY_in_arrayInitializer3487 = new BitSet(new long[] { 0x003F000000000000L });
public static final BitSet FOLLOW_constantValue_in_arrayInitializer3494 = new BitSet(new long[] { 0x0000000010000800L });
public static final BitSet FOLLOW_stringConstant_in_arrayInitializer3502 = new BitSet(new long[] { 0x0000000010000800L });
public static final BitSet FOLLOW_COMMA_in_arrayInitializer3516 = new BitSet(new long[] { 0x003F000000000000L });
public static final BitSet FOLLOW_constantValue_in_arrayInitializer3522 = new BitSet(new long[] { 0x0000000010000800L });
public static final BitSet FOLLOW_stringConstant_in_arrayInitializer3530 = new BitSet(new long[] { 0x0000000010000800L });
public static final BitSet FOLLOW_RCURLY_in_arrayInitializer3539 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_set_in_constantValue3560 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_aliasIdentifier_in_referenceInitializer3636 = new BitSet(new long[] { 0x0000000000000002L });
public static final BitSet FOLLOW_DoubleQuotedString_in_stringConstant3660 = new BitSet(new long[] { 0x0002000000000002L });
}