// $ANTLR 3.1.1 /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g 2012-04-29 19:11:15
package generated;
import com.sap.furcas.runtime.parser.ANTLR3LocationToken;
import com.sap.furcas.runtime.common.interfaces.IModelElementProxy;
import com.sap.furcas.runtime.parser.impl.PredicateSemantic;
import com.sap.furcas.runtime.parser.impl.SemanticDisambRuleData;
import com.sap.furcas.runtime.tcs.RuleNameFinder;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import com.sap.furcas.runtime.parser.impl.ObservableInjectingParser;
import org.antlr.runtime.Token;
import com.sap.furcas.runtime.referenceresolving.SyntaxRegistryFacade;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class BibtexLibraryViewParser extends ObservableInjectingParser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "NAME", "STRING", "INT", "LCURLY", "RCURLY", "COMA", "COMMENT", "NL", "WS", "DIGIT", "ALPHA", "SNAME", "ESC", "FLOAT", "'Library:'", "'Entries:'", "'Authors:'", "'@article'", "'title'", "'='", "'author'", "'and'"
};
public static final int T__25=25;
public static final int T__24=24;
public static final int T__23=23;
public static final int ESC=16;
public static final int T__22=22;
public static final int T__21=21;
public static final int T__20=20;
public static final int LCURLY=7;
public static final int FLOAT=17;
public static final int INT=6;
public static final int EOF=-1;
public static final int COMA=9;
public static final int ALPHA=14;
public static final int T__19=19;
public static final int NAME=4;
public static final int WS=12;
public static final int T__18=18;
public static final int SNAME=15;
public static final int RCURLY=8;
public static final int DIGIT=13;
public static final int NL=11;
public static final int COMMENT=10;
public static final int STRING=5;
// delegates
// delegators
public BibtexLibraryViewParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public BibtexLibraryViewParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
public String[] getTokenNames() { return BibtexLibraryViewParser.tokenNames; }
public String getGrammarFileName() { return "/home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g"; }
private static final String syntaxUUID = "platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKgJIeEeGcsrvRiDPUVw";
public String getSyntaxUUID() {
return syntaxUUID;
}
public String unescapeString(String s) {
// get rid of the starting and ending delimiters (e.g., '\'', '"')
int delimLength = 1; // for delimLength > 0, the following code needs to change
if (s.charAt(0) == '\'' && s.charAt(s.length()-delimLength) == '\'' || s.charAt(0) == '\"' && s.charAt(s.length()-delimLength) == '\"') {
s = s.substring(delimLength, s.length()-(delimLength * 2 - 1));
}
if(s.contains("\\\"")) {
s = s.replaceAll("\\\\\"", "\"");
}
return s;
}
// $ANTLR start "identifier"
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:103:1: identifier returns [Object ret2] : (ast= NAME ) ;
public final Object identifier() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:104:3: ( (ast= NAME ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:105:3: (ast= NAME )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:105:3: (ast= NAME )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:105:4: ast= NAME
{
ast=(Token)match(input,NAME,FOLLOW_NAME_in_identifier69); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = ast.getText();
}
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "identifier"
// $ANTLR start "stringSymbol"
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:113:1: stringSymbol returns [Object ret2] : (ast= STRING ) ;
public final Object stringSymbol() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:114:3: ( (ast= STRING ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:115:3: (ast= STRING )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:115:3: (ast= STRING )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:115:4: ast= STRING
{
ast=(Token)match(input,STRING,FOLLOW_STRING_in_stringSymbol100); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = unescapeString( ast.getText());
}
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "stringSymbol"
// $ANTLR start "integerSymbol"
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:123:1: integerSymbol returns [Object ret2] : (ast= INT ) ;
public final Object integerSymbol() throws RecognitionException {
Object ret2 = null;
Token ast=null;
java.lang.Object ret=null;
try {
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:124:3: ( (ast= INT ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:125:3: (ast= INT )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:125:3: (ast= INT )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:125:4: ast= INT
{
ast=(Token)match(input,INT,FOLLOW_INT_in_integerSymbol131); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
ret = Integer.valueOf( ast.getText());
}
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "integerSymbol"
// $ANTLR start "main"
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:133:1: main returns [Object ret2] : ( (ret= bibtex_literaturedb ) EOF ) ;
public final Object main() throws RecognitionException {
Object ret2 = null;
Object ret = null;
try {
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:134:3: ( ( (ret= bibtex_literaturedb ) EOF ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:135:3: ( (ret= bibtex_literaturedb ) EOF )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:135:3: ( (ret= bibtex_literaturedb ) EOF )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:135:4: (ret= bibtex_literaturedb ) EOF
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:135:4: (ret= bibtex_literaturedb )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:135:5: ret= bibtex_literaturedb
{
pushFollow(FOLLOW_bibtex_literaturedb_in_main159);
ret=bibtex_literaturedb();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
}
match(input,EOF,FOLLOW_EOF_in_main162); if (state.failed) return ret2;
}
if ( state.backtracking==0 ) {
ret2=ret;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ret2;
}
// $ANTLR end "main"
// $ANTLR start "bibtex_literaturedb"
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:142:1: bibtex_literaturedb returns [Object ret2] : ( 'Library:' (temp= identifier ) 'Entries:' LCURLY ( ( (temp= bibtex_entry (temp= bibtex_entry )* )? ) ) RCURLY 'Authors:' LCURLY (temp= bibtex_author ( ( COMA ) temp= bibtex_author )* )? RCURLY ) ;
public final Object bibtex_literaturedb() throws RecognitionException {
Object ret2 = null;
Object temp = null;
IModelElementProxy ret;
List<String> metaType=list("Bibtex","LiteratureDb");
ret=(getBacktrackingLevel()==0) ? createModelElementProxy(metaType, false, false) : null;
onEnterTemplateRule("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKhJIeEeGcsrvRiDPUVw");
org.antlr.runtime.Token firstToken=input.LT(1);
try {
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:148:3: ( ( 'Library:' (temp= identifier ) 'Entries:' LCURLY ( ( (temp= bibtex_entry (temp= bibtex_entry )* )? ) ) RCURLY 'Authors:' LCURLY (temp= bibtex_author ( ( COMA ) temp= bibtex_author )* )? RCURLY ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:149:3: ( 'Library:' (temp= identifier ) 'Entries:' LCURLY ( ( (temp= bibtex_entry (temp= bibtex_entry )* )? ) ) RCURLY 'Authors:' LCURLY (temp= bibtex_author ( ( COMA ) temp= bibtex_author )* )? RCURLY )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:149:3: ( 'Library:' (temp= identifier ) 'Entries:' LCURLY ( ( (temp= bibtex_entry (temp= bibtex_entry )* )? ) ) RCURLY 'Authors:' LCURLY (temp= bibtex_author ( ( COMA ) temp= bibtex_author )* )? RCURLY )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:149:4: 'Library:' (temp= identifier ) 'Entries:' LCURLY ( ( (temp= bibtex_entry (temp= bibtex_entry )* )? ) ) RCURLY 'Authors:' LCURLY (temp= bibtex_author ( ( COMA ) temp= bibtex_author )* )? RCURLY
{
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKhpIeEeGcsrvRiDPUVw");
}
match(input,18,FOLLOW_18_in_bibtex_literaturedb193); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKh5IeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:149:282: (temp= identifier )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:149:284: temp= identifier
{
pushFollow(FOLLOW_identifier_in_bibtex_literaturedb200);
temp=identifier();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "name", temp);
setParent(temp,ret,"name");
}
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKiZIeEeGcsrvRiDPUVw");
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKipIeEeGcsrvRiDPUVw");
}
match(input,19,FOLLOW_19_in_bibtex_literaturedb208); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKi5IeEeGcsrvRiDPUVw");
}
match(input,LCURLY,FOLLOW_LCURLY_in_bibtex_literaturedb212); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKjJIeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:150:616: ( ( (temp= bibtex_entry (temp= bibtex_entry )* )? ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:150:617: ( (temp= bibtex_entry (temp= bibtex_entry )* )? )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:150:617: ( (temp= bibtex_entry (temp= bibtex_entry )* )? )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:150:618: (temp= bibtex_entry (temp= bibtex_entry )* )?
{
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKjpIeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:150:744: (temp= bibtex_entry (temp= bibtex_entry )* )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==21) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:150:746: temp= bibtex_entry (temp= bibtex_entry )*
{
pushFollow(FOLLOW_bibtex_entry_in_bibtex_literaturedb223);
temp=bibtex_entry();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "entries", temp);
setParent(temp,ret,"entries");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:151:33: (temp= bibtex_entry )*
loop1:
do {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==21) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:151:35: temp= bibtex_entry
{
pushFollow(FOLLOW_bibtex_entry_in_bibtex_literaturedb231);
temp=bibtex_entry();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "entries", temp);
setParent(temp,ret,"entries");
}
}
break;
default :
break loop1;
}
} while (true);
}
break;
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
}
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKkJIeEeGcsrvRiDPUVw");
}
match(input,RCURLY,FOLLOW_RCURLY_in_bibtex_literaturedb246); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKkZIeEeGcsrvRiDPUVw");
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKkpIeEeGcsrvRiDPUVw");
}
match(input,20,FOLLOW_20_in_bibtex_literaturedb252); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PKk5IeEeGcsrvRiDPUVw");
}
match(input,LCURLY,FOLLOW_LCURLY_in_bibtex_literaturedb256); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxkJIeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:152:792: (temp= bibtex_author ( ( COMA ) temp= bibtex_author )* )?
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==NAME) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:152:794: temp= bibtex_author ( ( COMA ) temp= bibtex_author )*
{
pushFollow(FOLLOW_bibtex_author_in_bibtex_literaturedb264);
temp=bibtex_author();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "author", temp);
setParent(temp,ret,"author");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:153:32: ( ( COMA ) temp= bibtex_author )*
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==COMA) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:153:33: ( COMA ) temp= bibtex_author
{
if ( state.backtracking==0 ) {
_enterSepSeq();
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:153:50: ( COMA )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:153:51: COMA
{
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8Pxk5IeEeGcsrvRiDPUVw");
}
match(input,COMA,FOLLOW_COMA_in_bibtex_literaturedb273); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
}
if ( state.backtracking==0 ) {
_exitSepSeq();
}
pushFollow(FOLLOW_bibtex_author_in_bibtex_literaturedb281);
temp=bibtex_author();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "author", temp);
setParent(temp,ret,"author");
}
}
break;
default :
break loop3;
}
} while (true);
}
break;
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxlZIeEeGcsrvRiDPUVw");
}
match(input,RCURLY,FOLLOW_RCURLY_in_bibtex_literaturedb293); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxlpIeEeGcsrvRiDPUVw");
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
}
if ( state.backtracking==0 ) {
ret2 = commitCreation(ret, firstToken, false);
}
}
}
catch (Exception e) {
handleExceptionInTemplateRule(e, firstToken, ret);
}
finally {
onExitTemplateRule();
}
return ret2;
}
// $ANTLR end "bibtex_literaturedb"
// $ANTLR start "bibtex_entry"
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:162:1: bibtex_entry returns [Object ret2] : ( '@article' LCURLY (temp= identifier ) COMA 'title' '=' LCURLY (temp= stringSymbol ) RCURLY COMA 'author' '=' LCURLY (temp= identifier ( ( 'and' ) temp= identifier )* )? RCURLY RCURLY ) ;
public final Object bibtex_entry() throws RecognitionException {
Object ret2 = null;
Object temp = null;
IModelElementProxy ret;
List<String> metaType=list("Bibtex","Entry");
ret=(getBacktrackingLevel()==0) ? createModelElementProxy(metaType, false, false) : null;
onEnterTemplateRule("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8Pxl5IeEeGcsrvRiDPUVw");
org.antlr.runtime.Token firstToken=input.LT(1);
try {
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:168:3: ( ( '@article' LCURLY (temp= identifier ) COMA 'title' '=' LCURLY (temp= stringSymbol ) RCURLY COMA 'author' '=' LCURLY (temp= identifier ( ( 'and' ) temp= identifier )* )? RCURLY RCURLY ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:169:3: ( '@article' LCURLY (temp= identifier ) COMA 'title' '=' LCURLY (temp= stringSymbol ) RCURLY COMA 'author' '=' LCURLY (temp= identifier ( ( 'and' ) temp= identifier )* )? RCURLY RCURLY )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:169:3: ( '@article' LCURLY (temp= identifier ) COMA 'title' '=' LCURLY (temp= stringSymbol ) RCURLY COMA 'author' '=' LCURLY (temp= identifier ( ( 'and' ) temp= identifier )* )? RCURLY RCURLY )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:169:4: '@article' LCURLY (temp= identifier ) COMA 'title' '=' LCURLY (temp= stringSymbol ) RCURLY COMA 'author' '=' LCURLY (temp= identifier ( ( 'and' ) temp= identifier )* )? RCURLY RCURLY
{
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxmZIeEeGcsrvRiDPUVw");
}
match(input,21,FOLLOW_21_in_bibtex_entry336); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxmpIeEeGcsrvRiDPUVw");
}
match(input,LCURLY,FOLLOW_LCURLY_in_bibtex_entry340); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8Pxm5IeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:169:432: (temp= identifier )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:169:434: temp= identifier
{
pushFollow(FOLLOW_identifier_in_bibtex_entry348);
temp=identifier();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "id", temp);
setParent(temp,ret,"id");
}
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxnZIeEeGcsrvRiDPUVw");
}
match(input,COMA,FOLLOW_COMA_in_bibtex_entry355); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxnpIeEeGcsrvRiDPUVw");
}
match(input,22,FOLLOW_22_in_bibtex_entry359); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8Pxn5IeEeGcsrvRiDPUVw");
}
match(input,23,FOLLOW_23_in_bibtex_entry362); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxoJIeEeGcsrvRiDPUVw");
}
match(input,LCURLY,FOLLOW_LCURLY_in_bibtex_entry366); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxoZIeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:170:762: (temp= stringSymbol )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:170:764: temp= stringSymbol
{
pushFollow(FOLLOW_stringSymbol_in_bibtex_entry374);
temp=stringSymbol();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "title", temp);
setParent(temp,ret,"title");
}
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxpJIeEeGcsrvRiDPUVw");
}
match(input,RCURLY,FOLLOW_RCURLY_in_bibtex_entry381); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxpZIeEeGcsrvRiDPUVw");
}
match(input,COMA,FOLLOW_COMA_in_bibtex_entry386); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxppIeEeGcsrvRiDPUVw");
}
match(input,24,FOLLOW_24_in_bibtex_entry390); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8Pxp5IeEeGcsrvRiDPUVw");
}
match(input,23,FOLLOW_23_in_bibtex_entry393); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxqJIeEeGcsrvRiDPUVw");
}
match(input,LCURLY,FOLLOW_LCURLY_in_bibtex_entry397); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxqZIeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:171:916: (temp= identifier ( ( 'and' ) temp= identifier )* )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==NAME) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:171:918: temp= identifier ( ( 'and' ) temp= identifier )*
{
pushFollow(FOLLOW_identifier_in_bibtex_entry405);
temp=identifier();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setOclRef(ret, "author", null, temp, "OCL:self.literaturedb.author->select(name = ?)", "platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxqZIeEeGcsrvRiDPUVw", SyntaxRegistryFacade.getModelUpdaterRegistry());
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:171:1183: ( ( 'and' ) temp= identifier )*
loop5:
do {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==25) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:171:1184: ( 'and' ) temp= identifier
{
if ( state.backtracking==0 ) {
_enterSepSeq();
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:171:1201: ( 'and' )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:171:1202: 'and'
{
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxrZIeEeGcsrvRiDPUVw");
}
match(input,25,FOLLOW_25_in_bibtex_entry413); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
}
if ( state.backtracking==0 ) {
_exitSepSeq();
}
pushFollow(FOLLOW_identifier_in_bibtex_entry420);
temp=identifier();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setOclRef(ret, "author", null, temp, "OCL:self.literaturedb.author->select(name = ?)", "platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxqZIeEeGcsrvRiDPUVw", SyntaxRegistryFacade.getModelUpdaterRegistry());
}
}
break;
default :
break loop5;
}
} while (true);
}
break;
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxsJIeEeGcsrvRiDPUVw");
}
match(input,RCURLY,FOLLOW_RCURLY_in_bibtex_entry432); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxsZIeEeGcsrvRiDPUVw");
}
match(input,RCURLY,FOLLOW_RCURLY_in_bibtex_entry437); if (state.failed) return ret2;
if ( state.backtracking==0 ) {
_afterSeqEl();
}
}
if ( state.backtracking==0 ) {
ret2 = commitCreation(ret, firstToken, false);
}
}
}
catch (Exception e) {
handleExceptionInTemplateRule(e, firstToken, ret);
}
finally {
onExitTemplateRule();
}
return ret2;
}
// $ANTLR end "bibtex_entry"
// $ANTLR start "bibtex_author"
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:179:1: bibtex_author returns [Object ret2] : ( (temp= identifier ) ) ;
public final Object bibtex_author() throws RecognitionException {
Object ret2 = null;
Object temp = null;
IModelElementProxy ret;
List<String> metaType=list("Bibtex","Author");
ret=(getBacktrackingLevel()==0) ? createModelElementProxy(metaType, false, false) : null;
onEnterTemplateRule("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxspIeEeGcsrvRiDPUVw");
org.antlr.runtime.Token firstToken=input.LT(1);
try {
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:185:3: ( ( (temp= identifier ) ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:186:3: ( (temp= identifier ) )
{
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:186:3: ( (temp= identifier ) )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:186:4: (temp= identifier )
{
if ( state.backtracking==0 ) {
_beforeSeqEl("platform:/plugin/com.sap.furcas.example.bibtex.dsl/mapping/BibtexLibraryView.furcas#_U8PxtJIeEeGcsrvRiDPUVw");
}
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:186:130: (temp= identifier )
// /home/stephan/projekte/java/FURCAS-git/workspace/DSLEngineering/com.sap.furcas.example.bibtex.dsl/generated/generated/BibtexLibraryView.g:186:132: temp= identifier
{
pushFollow(FOLLOW_identifier_in_bibtex_author482);
temp=identifier();
checkFollows();
state._fsp--;
if (state.failed) return ret2;
if ( state.backtracking==0 ) {
setProperty(ret, "name", temp);
setParent(temp,ret,"name");
}
}
if ( state.backtracking==0 ) {
_afterSeqEl();
}
}
if ( state.backtracking==0 ) {
ret2 = commitCreation(ret, firstToken, false);
}
}
}
catch (Exception e) {
handleExceptionInTemplateRule(e, firstToken, ret);
}
finally {
onExitTemplateRule();
}
return ret2;
}
// $ANTLR end "bibtex_author"
// Delegated rules
public static final BitSet FOLLOW_NAME_in_identifier69 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_stringSymbol100 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_in_integerSymbol131 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bibtex_literaturedb_in_main159 = new BitSet(new long[]{0x0000000000000000L});
public static final BitSet FOLLOW_EOF_in_main162 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_18_in_bibtex_literaturedb193 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_bibtex_literaturedb200 = new BitSet(new long[]{0x0000000000080000L});
public static final BitSet FOLLOW_19_in_bibtex_literaturedb208 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_LCURLY_in_bibtex_literaturedb212 = new BitSet(new long[]{0x0000000000200100L});
public static final BitSet FOLLOW_bibtex_entry_in_bibtex_literaturedb223 = new BitSet(new long[]{0x0000000000200100L});
public static final BitSet FOLLOW_bibtex_entry_in_bibtex_literaturedb231 = new BitSet(new long[]{0x0000000000200100L});
public static final BitSet FOLLOW_RCURLY_in_bibtex_literaturedb246 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_20_in_bibtex_literaturedb252 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_LCURLY_in_bibtex_literaturedb256 = new BitSet(new long[]{0x0000000000000110L});
public static final BitSet FOLLOW_bibtex_author_in_bibtex_literaturedb264 = new BitSet(new long[]{0x0000000000000300L});
public static final BitSet FOLLOW_COMA_in_bibtex_literaturedb273 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_bibtex_author_in_bibtex_literaturedb281 = new BitSet(new long[]{0x0000000000000300L});
public static final BitSet FOLLOW_RCURLY_in_bibtex_literaturedb293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_21_in_bibtex_entry336 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_LCURLY_in_bibtex_entry340 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_bibtex_entry348 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_COMA_in_bibtex_entry355 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_22_in_bibtex_entry359 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_23_in_bibtex_entry362 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_LCURLY_in_bibtex_entry366 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_stringSymbol_in_bibtex_entry374 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_RCURLY_in_bibtex_entry381 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_COMA_in_bibtex_entry386 = new BitSet(new long[]{0x0000000001000000L});
public static final BitSet FOLLOW_24_in_bibtex_entry390 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_23_in_bibtex_entry393 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_LCURLY_in_bibtex_entry397 = new BitSet(new long[]{0x0000000000000110L});
public static final BitSet FOLLOW_identifier_in_bibtex_entry405 = new BitSet(new long[]{0x0000000002000100L});
public static final BitSet FOLLOW_25_in_bibtex_entry413 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_identifier_in_bibtex_entry420 = new BitSet(new long[]{0x0000000002000100L});
public static final BitSet FOLLOW_RCURLY_in_bibtex_entry432 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_RCURLY_in_bibtex_entry437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifier_in_bibtex_author482 = new BitSet(new long[]{0x0000000000000002L});
}