| /******************************************************************************* |
| * Copyright (c) 2015, 2020 Willink Transformations and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v20.html |
| * |
| * Contributors: |
| * E.D.Willink - initial API and implementation |
| ******************************************************************************* |
| * This code is 100% auto-generated |
| * from: E:\GIT\org.eclipse.ocl\examples..\..\plugins\org.eclipse.ocl.xtext.markup\src-gen\org\eclipse\ocl\xtext\markup\Markup.xtextbin |
| * by: org.eclipse.ocl.examples.build.xtend.generateGrammar.xtend |
| * |
| * Do not edit it. |
| *******************************************************************************/ |
| package org.eclipse.ocl.xtext.markup; |
| |
| import java.util.List; |
| |
| import org.eclipse.emf.common.util.URI; |
| import org.eclipse.jdt.annotation.NonNull; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.ocl.xtext.base.utilities.AbstractGrammarResource; |
| import org.eclipse.xtext.AbstractMetamodelDeclaration; |
| import org.eclipse.xtext.AbstractRule; |
| import org.eclipse.xtext.Grammar; |
| import org.eclipse.xtext.ParserRule; |
| import org.eclipse.xtext.ReferencedMetamodel; |
| import org.eclipse.xtext.TerminalRule; |
| import org.eclipse.xtext.resource.XtextResourceSet; |
| |
| import com.google.inject.Inject; |
| import com.google.inject.Provider; |
| import com.google.inject.Singleton; |
| |
| /** |
| * MarkupGrammarResource provides a programmatically initialized org.eclipse.ocl.xtext.markup.Markup Grammar model avoiding |
| * the speed limitations of the pre-Xtext 2.4 *.xmi models and the binary incompatibilities between differing *.xtextbin versions. |
| * <p> |
| * The grammar is immutable and is available as static INSTANCE and GRAMMAR fields. |
| */ |
| public class MarkupGrammarResource extends AbstractGrammarResource |
| { |
| private static final @NonNull Grammar G_Markup = createGrammar("org.eclipse.ocl.xtext.markup.Markup"); |
| |
| /** |
| * The shared immutable instance of the org.eclipse.ocl.xtext.markup.Markup Grammar resource. |
| */ |
| public static final @NonNull MarkupGrammarResource INSTANCE = new MarkupGrammarResource(); |
| |
| /** |
| * The shared immutable instance of the org.eclipse.ocl.xtext.markup.Markup Grammar model. |
| */ |
| public static final @NonNull Grammar GRAMMAR = (Grammar)INSTANCE.getContents().get(0); |
| |
| /** |
| * The name of the language supported by this grammar. |
| */ |
| public static final @NonNull String LANGUAGE_NAME = "org.eclipse.ocl.xtext.markup.Markup"; |
| |
| protected MarkupGrammarResource() { |
| super(URI.createURI(LANGUAGE_NAME)); |
| List<EObject> contents = getContents(); |
| contents.add(_Markup.initGrammar()); |
| } |
| |
| /* |
| * This class should be bound to org.eclipse.xtext.service.GrammarProvider. |
| */ |
| @Singleton |
| public static class GrammarProvider extends org.eclipse.xtext.service.GrammarProvider |
| { |
| @Inject |
| public GrammarProvider(Provider<XtextResourceSet> resourceSetProvider) { |
| super(LANGUAGE_NAME, resourceSetProvider); |
| } |
| |
| @Override |
| public Grammar getGrammar(Object requestor) { |
| return MarkupGrammarResource.GRAMMAR; |
| } |
| } |
| |
| private static class _Markup |
| { |
| private static final @NonNull ReferencedMetamodel MM = createReferencedMetamodel(org.eclipse.ocl.xtext.markupcs.MarkupPackage.eINSTANCE, null); // http://www.eclipse.org/ocl/2015/MarkupCS |
| private static final @NonNull ReferencedMetamodel MM_ecore = createReferencedMetamodel(org.eclipse.emf.ecore.EcorePackage.eINSTANCE, "ecore"); // http://www.eclipse.org/emf/2002/Ecore |
| |
| private static final @NonNull TerminalRule TR_ANY_OTHER = createTerminalRule("ANY_OTHER", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_ESCAPED = createTerminalRule("ESCAPED", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_HORIZONTAL_WS = createTerminalRule("HORIZONTAL_WS", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_ID = createTerminalRule("ID", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_INT = createTerminalRule("INT", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_LETTER = createTerminalRule("LETTER", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_NL = createTerminalRule("NL", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_NUMBER = createTerminalRule("NUMBER", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_STRING = createTerminalRule("STRING", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_VERTICAL_WS = createTerminalRule("VERTICAL_WS", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_WORD = createTerminalRule("WORD", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull TerminalRule TR_WS = createTerminalRule("WS", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| |
| private static void initTerminalRules() { |
| TR_ANY_OTHER.setAlternatives(createWildcard()); |
| TR_ESCAPED.setFragment(true); |
| TR_ESCAPED.setAlternatives(createGroup(createKeyword("\\"), createAlternatives(createKeyword("b"), createKeyword("t"), createKeyword("n"), createKeyword("f"), createKeyword("r"), createKeyword("\""), createKeyword("\'"), createKeyword("\\"), createKeyword("<"), createKeyword(">"), createKeyword("["), createKeyword("]")))); |
| TR_HORIZONTAL_WS.setFragment(true); |
| TR_HORIZONTAL_WS.setAlternatives(createAlternatives(createKeyword(" "), createKeyword("\t"))); |
| TR_ID.setAlternatives(createGroup(createRuleCall(TR_LETTER), setCardinality("*", createAlternatives(createRuleCall(TR_LETTER), createRuleCall(TR_NUMBER))))); |
| TR_INT.setAlternatives(setCardinality("+", createRuleCall(TR_NUMBER))); |
| TR_LETTER.setFragment(true); |
| TR_LETTER.setAlternatives(createAlternatives(createCharacterRange(createKeyword("a"), createKeyword("z")), createCharacterRange(createKeyword("A"), createKeyword("Z")), createKeyword("_"))); |
| TR_NL.setAlternatives(setCardinality("+", createGroup(setCardinality("*", createRuleCall(TR_HORIZONTAL_WS)), createRuleCall(TR_VERTICAL_WS)))); |
| TR_NUMBER.setFragment(true); |
| TR_NUMBER.setAlternatives(createCharacterRange(createKeyword("0"), createKeyword("9"))); |
| TR_STRING.setAlternatives(createGroup(createKeyword("\""), setCardinality("*", createAlternatives(createRuleCall(TR_ESCAPED), createNegatedToken(createAlternatives(createKeyword("\\"), createKeyword("\""))))), createKeyword("\""))); |
| TR_VERTICAL_WS.setFragment(true); |
| TR_VERTICAL_WS.setAlternatives(createAlternatives(createKeyword("\n"), createKeyword("\r"))); |
| TR_WORD.setAlternatives(setCardinality("+", createAlternatives(createRuleCall(TR_ESCAPED), createNegatedToken(createAlternatives(createKeyword("\\"), createKeyword("\""), createKeyword("["), createKeyword("]"), createKeyword(":"), createKeyword("#"), createKeyword(","), createRuleCall(TR_HORIZONTAL_WS), createRuleCall(TR_VERTICAL_WS)))))); |
| TR_WS.setAlternatives(setCardinality("+", createRuleCall(TR_HORIZONTAL_WS))); |
| } |
| |
| private static final @NonNull ParserRule PR_BulletElement = createParserRule("BulletElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.BULLET_ELEMENT)); |
| private static final @NonNull ParserRule PR_FigureElement = createParserRule("FigureElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.FIGURE_ELEMENT)); |
| private static final @NonNull ParserRule PR_FigureRefElement = createParserRule("FigureRefElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.FIGURE_REF_ELEMENT)); |
| private static final @NonNull ParserRule PR_FontElement = createParserRule("FontElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.FONT_ELEMENT)); |
| private static final @NonNull ParserRule PR_FootnoteElement = createParserRule("FootnoteElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.FOOTNOTE_ELEMENT)); |
| private static final @NonNull ParserRule PR_HeadingElement = createParserRule("HeadingElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.HEADING_ELEMENT)); |
| private static final @NonNull ParserRule PR_Markup = createParserRule("Markup", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.MARKUP)); |
| private static final @NonNull ParserRule PR_MarkupElement = createParserRule("MarkupElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.MARKUP_ELEMENT)); |
| private static final @NonNull ParserRule PR_MarkupKeyword = createParserRule("MarkupKeyword", createTypeRef(MM_ecore, org.eclipse.emf.ecore.EcorePackage.Literals.ESTRING)); |
| private static final @NonNull ParserRule PR_NewLineElement = createParserRule("NewLineElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.NEW_LINE_ELEMENT)); |
| private static final @NonNull ParserRule PR_NullElement = createParserRule("NullElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.NULL_ELEMENT)); |
| private static final @NonNull ParserRule PR_OCLCodeElement = createParserRule("OCLCodeElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.OCL_CODE_ELEMENT)); |
| private static final @NonNull ParserRule PR_OCLEvalElement = createParserRule("OCLEvalElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.OCL_EVAL_ELEMENT)); |
| private static final @NonNull ParserRule PR_OCLTextElement = createParserRule("OCLTextElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.OCL_TEXT_ELEMENT)); |
| private static final @NonNull ParserRule PR_TextElement = createParserRule("TextElement", createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.TEXT_ELEMENT)); |
| |
| private static void initParserRules() { |
| PR_BulletElement.setAlternatives(createGroup(createAction(null, null, createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.BULLET_ELEMENT)), createKeyword("bullet"), setCardinality("?", createGroup(createKeyword(":"), createAssignment("level", "=", createRuleCall(TR_INT)))), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_FigureElement.setAlternatives(createGroup(createKeyword("figure"), setCardinality("?", createGroup(createKeyword("#"), createAssignment("def", "=", createRuleCall(TR_ID)))), createKeyword("["), createAssignment("src", "=", createRuleCall(TR_STRING)), setCardinality("?", createGroup(createKeyword(","), createAssignment("alt", "=", createRuleCall(TR_STRING)), setCardinality("?", createGroup(createKeyword(","), createAssignment("requiredWidth", "=", createRuleCall(TR_INT)), setCardinality("?", createGroup(createKeyword(","), createAssignment("requiredHeight", "=", createRuleCall(TR_INT)))))))), createKeyword("]"))); |
| PR_FigureRefElement.setAlternatives(createGroup(createKeyword("figureRef"), createKeyword("["), createAssignment("ref", "=", createCrossReference(createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.FIGURE_ELEMENT), createRuleCall(TR_ID))), createKeyword("]"))); |
| PR_FontElement.setAlternatives(createGroup(createAssignment("font", "=", createAlternatives(createKeyword("b"), createKeyword("e"))), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_FootnoteElement.setAlternatives(createGroup(createAction(null, null, createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.FOOTNOTE_ELEMENT)), createKeyword("footnote"), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_HeadingElement.setAlternatives(createGroup(createAction(null, null, createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.HEADING_ELEMENT)), createKeyword("heading"), setCardinality("?", createGroup(createKeyword(":"), createAssignment("level", "=", createRuleCall(TR_INT)))), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_Markup.setAlternatives(setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement)))); |
| PR_MarkupElement.setAlternatives(createAlternatives(createRuleCall(PR_FontElement), createRuleCall(PR_NewLineElement), createRuleCall(PR_BulletElement), createRuleCall(PR_FigureElement), createRuleCall(PR_FigureRefElement), createRuleCall(PR_FootnoteElement), createRuleCall(PR_HeadingElement), createRuleCall(PR_NullElement), createRuleCall(PR_OCLCodeElement), createRuleCall(PR_OCLEvalElement), createRuleCall(PR_OCLTextElement), createRuleCall(PR_TextElement))); |
| PR_MarkupKeyword.setAlternatives(createAlternatives(createKeyword("b"), createKeyword("e"), createKeyword("bullet"), createKeyword("figure"), createKeyword("figureRef"), createKeyword("footnote"), createKeyword("heading"), createKeyword("oclCode"), createKeyword("oclEval"), createKeyword("oclText"))); |
| PR_NewLineElement.setAlternatives(createAssignment("text", "=", createRuleCall(TR_NL))); |
| PR_NullElement.setAlternatives(createGroup(createAction(null, null, createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.NULL_ELEMENT)), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_OCLCodeElement.setAlternatives(createGroup(createAction(null, null, createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.OCL_CODE_ELEMENT)), createKeyword("oclCode"), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_OCLEvalElement.setAlternatives(createGroup(createAction(null, null, createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.OCL_EVAL_ELEMENT)), createKeyword("oclEval"), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_OCLTextElement.setAlternatives(createGroup(createAction(null, null, createTypeRef(MM, org.eclipse.ocl.xtext.markupcs.MarkupPackage.Literals.OCL_TEXT_ELEMENT)), createKeyword("oclText"), createKeyword("["), setCardinality("*", createAssignment("elements", "+=", createRuleCall(PR_MarkupElement))), createKeyword("]"))); |
| PR_TextElement.setAlternatives(createAlternatives(setCardinality("+", createAssignment("text", "+=", createAlternatives(createRuleCall(TR_ID), createRuleCall(TR_WORD), createRuleCall(TR_INT), createRuleCall(TR_WS), createKeyword(":"), createKeyword("#"), createKeyword(",")))), createAssignment("text", "+=", createRuleCall(PR_MarkupKeyword)))); |
| } |
| |
| private static @NonNull Grammar initGrammar() { |
| initTerminalRules(); |
| initParserRules(); |
| Grammar grammar = G_Markup; |
| grammar.setDefinesHiddenTokens(true); |
| { |
| List<AbstractMetamodelDeclaration> metamodelDeclarations = grammar.getMetamodelDeclarations(); |
| metamodelDeclarations.add(MM_ecore); |
| metamodelDeclarations.add(MM); |
| } |
| { |
| List<AbstractRule> rules = grammar.getRules(); |
| rules.add(PR_Markup); |
| rules.add(TR_NUMBER); |
| rules.add(TR_LETTER); |
| rules.add(TR_ESCAPED); |
| rules.add(TR_VERTICAL_WS); |
| rules.add(TR_HORIZONTAL_WS); |
| rules.add(TR_INT); |
| rules.add(TR_STRING); |
| rules.add(TR_ID); |
| rules.add(TR_WORD); |
| rules.add(TR_NL); |
| rules.add(TR_WS); |
| rules.add(TR_ANY_OTHER); |
| rules.add(PR_MarkupKeyword); |
| rules.add(PR_MarkupElement); |
| rules.add(PR_BulletElement); |
| rules.add(PR_FontElement); |
| rules.add(PR_FigureElement); |
| rules.add(PR_FigureRefElement); |
| rules.add(PR_FootnoteElement); |
| rules.add(PR_HeadingElement); |
| rules.add(PR_NewLineElement); |
| rules.add(PR_NullElement); |
| rules.add(PR_OCLCodeElement); |
| rules.add(PR_OCLEvalElement); |
| rules.add(PR_OCLTextElement); |
| rules.add(PR_TextElement); |
| } |
| return grammar; |
| } |
| } |
| } |