<?xml version="1.0" encoding="ASCII"?> | |
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext"> | |
<xtext:Grammar name="me.dollyn.goide.Golang" usedGrammars="/1"> | |
<metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="golang"> | |
<ePackage href="http://www.dollyn.me/goide/Golang#/"/> | |
</metamodelDeclarations> | |
<rules xsi:type="xtext:ParserRule" name="GoModel"> | |
<type metamodel="/0/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EClass" href="http://www.dollyn.me/goide/Golang#//GoModel"/> | |
</type> | |
<alternatives xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Assignment" feature="package" operator="+="> | |
<terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/> | |
</elements> | |
<elements xsi:type="xtext:Assignment" cardinality="*" feature="imports" operator="+="> | |
<terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/> | |
</elements> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:ParserRule" name="Package"> | |
<type metamodel="/0/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EClass" href="http://www.dollyn.me/goide/Golang#//Package"/> | |
</type> | |
<alternatives xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="package"/> | |
<elements xsi:type="xtext:Assignment" feature="name" operator="="> | |
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> | |
</elements> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:ParserRule" name="Import"> | |
<type metamodel="/0/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EClass" href="http://www.dollyn.me/goide/Golang#//Import"/> | |
</type> | |
<alternatives xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="import"/> | |
<elements xsi:type="xtext:Assignment" feature="path" operator="="> | |
<terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/> | |
</elements> | |
</alternatives> | |
</rules> | |
</xtext:Grammar> | |
<xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4"> | |
<metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> | |
<ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> | |
</metamodelDeclarations> | |
<rules xsi:type="xtext:TerminalRule" name="ID"> | |
<type metamodel="/1/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</type> | |
<alternatives xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" cardinality="?" value="^"/> | |
<elements xsi:type="xtext:Alternatives"> | |
<elements xsi:type="xtext:CharacterRange"> | |
<left value="a"/> | |
<right value="z"/> | |
</elements> | |
<elements xsi:type="xtext:CharacterRange"> | |
<left value="A"/> | |
<right value="Z"/> | |
</elements> | |
<elements xsi:type="xtext:Keyword" value="_"/> | |
</elements> | |
<elements xsi:type="xtext:Alternatives" cardinality="*"> | |
<elements xsi:type="xtext:CharacterRange"> | |
<left value="a"/> | |
<right value="z"/> | |
</elements> | |
<elements xsi:type="xtext:CharacterRange"> | |
<left value="A"/> | |
<right value="Z"/> | |
</elements> | |
<elements xsi:type="xtext:Keyword" value="_"/> | |
<elements xsi:type="xtext:CharacterRange"> | |
<left value="0"/> | |
<right value="9"/> | |
</elements> | |
</elements> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:TerminalRule" name="INT"> | |
<type metamodel="/1/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | |
</type> | |
<alternatives xsi:type="xtext:CharacterRange" cardinality="+"> | |
<left value="0"/> | |
<right value="9"/> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:TerminalRule" name="STRING"> | |
<type metamodel="/1/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</type> | |
<alternatives xsi:type="xtext:Alternatives"> | |
<elements xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="""/> | |
<elements xsi:type="xtext:Alternatives" cardinality="*"> | |
<elements xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="\"/> | |
<elements xsi:type="xtext:Alternatives"> | |
<elements xsi:type="xtext:Keyword" value="b"/> | |
<elements xsi:type="xtext:Keyword" value="t"/> | |
<elements xsi:type="xtext:Keyword" value="n"/> | |
<elements xsi:type="xtext:Keyword" value="f"/> | |
<elements xsi:type="xtext:Keyword" value="r"/> | |
<elements xsi:type="xtext:Keyword" value="u"/> | |
<elements xsi:type="xtext:Keyword" value="""/> | |
<elements xsi:type="xtext:Keyword" value="'"/> | |
<elements xsi:type="xtext:Keyword" value="\"/> | |
</elements> | |
</elements> | |
<elements xsi:type="xtext:NegatedToken"> | |
<terminal xsi:type="xtext:Alternatives"> | |
<elements xsi:type="xtext:Keyword" value="\"/> | |
<elements xsi:type="xtext:Keyword" value="""/> | |
</terminal> | |
</elements> | |
</elements> | |
<elements xsi:type="xtext:Keyword" value="""/> | |
</elements> | |
<elements xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="'"/> | |
<elements xsi:type="xtext:Alternatives" cardinality="*"> | |
<elements xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="\"/> | |
<elements xsi:type="xtext:Alternatives"> | |
<elements xsi:type="xtext:Keyword" value="b"/> | |
<elements xsi:type="xtext:Keyword" value="t"/> | |
<elements xsi:type="xtext:Keyword" value="n"/> | |
<elements xsi:type="xtext:Keyword" value="f"/> | |
<elements xsi:type="xtext:Keyword" value="r"/> | |
<elements xsi:type="xtext:Keyword" value="u"/> | |
<elements xsi:type="xtext:Keyword" value="""/> | |
<elements xsi:type="xtext:Keyword" value="'"/> | |
<elements xsi:type="xtext:Keyword" value="\"/> | |
</elements> | |
</elements> | |
<elements xsi:type="xtext:NegatedToken"> | |
<terminal xsi:type="xtext:Alternatives"> | |
<elements xsi:type="xtext:Keyword" value="\"/> | |
<elements xsi:type="xtext:Keyword" value="'"/> | |
</terminal> | |
</elements> | |
</elements> | |
<elements xsi:type="xtext:Keyword" value="'"/> | |
</elements> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:TerminalRule" name="ML_COMMENT"> | |
<type metamodel="/1/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</type> | |
<alternatives xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="/*"/> | |
<elements xsi:type="xtext:UntilToken"> | |
<terminal xsi:type="xtext:Keyword" value="*/"/> | |
</elements> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:TerminalRule" name="SL_COMMENT"> | |
<type metamodel="/1/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</type> | |
<alternatives xsi:type="xtext:Group"> | |
<elements xsi:type="xtext:Keyword" value="//"/> | |
<elements xsi:type="xtext:NegatedToken" cardinality="*"> | |
<terminal xsi:type="xtext:Alternatives"> | |
<elements xsi:type="xtext:Keyword" value="
"/> | |
<elements xsi:type="xtext:Keyword" value="
"/> | |
</terminal> | |
</elements> | |
<elements xsi:type="xtext:Group" cardinality="?"> | |
<elements xsi:type="xtext:Keyword" cardinality="?" value="
"/> | |
<elements xsi:type="xtext:Keyword" value="
"/> | |
</elements> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:TerminalRule" name="WS"> | |
<type metamodel="/1/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</type> | |
<alternatives xsi:type="xtext:Alternatives" cardinality="+"> | |
<elements xsi:type="xtext:Keyword" value=" "/> | |
<elements xsi:type="xtext:Keyword" value="	"/> | |
<elements xsi:type="xtext:Keyword" value="
"/> | |
<elements xsi:type="xtext:Keyword" value="
"/> | |
</alternatives> | |
</rules> | |
<rules xsi:type="xtext:TerminalRule" name="ANY_OTHER"> | |
<type metamodel="/1/@metamodelDeclarations.0"> | |
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</type> | |
<alternatives xsi:type="xtext:Wildcard"/> | |
</rules> | |
</xtext:Grammar> | |
</xmi:XMI> |