eclipse plugin: Add '#ifver' and '#ifnver' to the WML grammar

This commit is contained in:
Timotei Dolean 2012-08-22 20:46:56 +00:00
parent 40e7a7fab2
commit 0d229f410b
14 changed files with 3655 additions and 2871 deletions

View file

@ -1,5 +1,9 @@
Eclipse plugin changelog
2.0.2
* Added the #ifver and #ifnver to the recognized WML
* Fixed the coloring of the #else keyword
2.0.1
* Fixed the ``WML Tools" menu not appearing on the projects context menu.
* Fixed the highlighting of the #endif preprocessor define.

View file

@ -71,6 +71,8 @@ public class AbstractWMLProposalProvider extends AbstractJavaBasedContentProposa
completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(1)), context, acceptor);
completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(2)), context, acceptor);
completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(3)), context, acceptor);
completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(4)), context, acceptor);
completeRuleCall(((RuleCall)((Alternatives)assignment.getTerminal()).getElements().get(5)), context, acceptor);
}
public void completeWMLPreprocIF_Expressions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
@ -177,6 +179,12 @@ public class AbstractWMLProposalProvider extends AbstractJavaBasedContentProposa
public void complete_IFDEF(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_IFVER(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_IFNVER(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}
public void complete_IFNDEF(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
// subclasses may override
}

View file

@ -650,6 +650,18 @@ rule__WMLPreprocIF__NameAlternatives_0_0
{ before(grammarAccess.getWMLPreprocIFAccess().getNameIFNHAVETerminalRuleCall_0_0_3()); }
RULE_IFNHAVE
{ after(grammarAccess.getWMLPreprocIFAccess().getNameIFNHAVETerminalRuleCall_0_0_3()); }
)
|(
{ before(grammarAccess.getWMLPreprocIFAccess().getNameIFVERTerminalRuleCall_0_0_4()); }
RULE_IFVER
{ after(grammarAccess.getWMLPreprocIFAccess().getNameIFVERTerminalRuleCall_0_0_4()); }
)
|(
{ before(grammarAccess.getWMLPreprocIFAccess().getNameIFNVERTerminalRuleCall_0_0_5()); }
RULE_IFNVER
{ after(grammarAccess.getWMLPreprocIFAccess().getNameIFNVERTerminalRuleCall_0_0_5()); }
)
;
@ -2453,6 +2465,10 @@ RULE_IFNHAVE : '#ifnhave' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFDEF : '#ifdef' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFVER : '#ifver' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFNVER : '#ifnver' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFNDEF : '#ifndef' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_ELSE : '#else' ~(('\n'|'\r'))* ('\r'? '\n')?;

View file

@ -1,5 +1,5 @@
RULE_LUA_CODE=18
RULE_ID=10
RULE_LUA_CODE=20
RULE_ID=12
RULE_IFDEF=6
T__29=29
T__28=28
@ -9,38 +9,40 @@ T__25=25
T__24=24
T__23=23
T__22=22
RULE_ANY_OTHER=12
T__21=21
T__20=20
RULE_ANY_OTHER=14
RULE_IFNDEF=7
RULE_EOL=4
RULE_TEXTDOMAIN=17
RULE_TEXTDOMAIN=19
RULE_IFNHAVE=9
RULE_SL_COMMENT=5
RULE_IFNVER=11
T__30=30
T__31=31
RULE_STRING=11
RULE_STRING=13
T__32=32
T__33=33
RULE_ENDIF=16
RULE_ENDIF=18
T__34=34
RULE_DEFINE=13
RULE_ENDDEF=14
T__35=35
T__36=36
RULE_DEFINE=15
RULE_IFVER=10
RULE_ENDDEF=16
RULE_IFHAVE=8
RULE_WS=19
RULE_ELSE=15
'$'=24
'}'=34
'~'=21
'/'=25
'{'=33
'='=28
'('=26
'['=29
'[/'=32
'+'=31
'_'=20
'.'=22
')'=27
'./'=23
']'=30
RULE_WS=21
RULE_ELSE=17
'$'=26
'}'=36
'~'=23
'/'=27
'{'=35
'='=30
'('=28
'['=31
'[/'=34
'+'=33
'_'=22
'.'=24
')'=29
'./'=25
']'=32

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ASCII"?>
<xtext:Grammar 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" name="org.wesnoth.WML" definesHiddenTokens="true" hiddenTokens="//@rules.30 //@rules.31 //@rules.33">
<xtext:Grammar 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" name="org.wesnoth.WML" definesHiddenTokens="true" hiddenTokens="//@rules.32 //@rules.33 //@rules.35">
<metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="wml">
<ePackage href="http://www.wesnoth.org/WML#/"/>
</metamodelDeclarations>
@ -35,7 +35,7 @@
<terminal xsi:type="xtext:Keyword" value="+"/>
</elements>
<elements xsi:type="xtext:Assignment" feature="name" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.29"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.31"/>
</elements>
<elements xsi:type="xtext:Keyword" value="]"/>
<elements xsi:type="xtext:Assignment" cardinality="*" feature="Expressions" operator="+=">
@ -43,35 +43,35 @@
</elements>
<elements xsi:type="xtext:Keyword" value="[/"/>
<elements xsi:type="xtext:Assignment" feature="endName" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.29"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.31"/>
</elements>
<elements xsi:type="xtext:Keyword" value="]"/>
</alternatives>
</rules>
<rules xsi:type="xtext:ParserRule" name="WMLKey" definesHiddenTokens="true" hiddenTokens="//@rules.31">
<rules xsi:type="xtext:ParserRule" name="WMLKey" definesHiddenTokens="true" hiddenTokens="//@rules.33">
<type metamodel="//@metamodelDeclarations.0">
<classifier xsi:type="ecore:EClass" href="http://www.wesnoth.org/WML#//WMLKey"/>
</type>
<alternatives xsi:type="xtext:Group">
<elements xsi:type="xtext:Assignment" feature="name" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.29"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.31"/>
</elements>
<elements xsi:type="xtext:Keyword" value="="/>
<elements xsi:type="xtext:Assignment" cardinality="*" feature="values" operator="+=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.4"/>
</elements>
<elements xsi:type="xtext:Group" cardinality="*">
<elements xsi:type="xtext:RuleCall" cardinality="?" rule="//@rules.30"/>
<elements xsi:type="xtext:RuleCall" cardinality="?" rule="//@rules.32"/>
<elements xsi:type="xtext:Keyword" value="+"/>
<elements xsi:type="xtext:RuleCall" cardinality="?" rule="//@rules.30"/>
<elements xsi:type="xtext:RuleCall" cardinality="?" rule="//@rules.32"/>
<elements xsi:type="xtext:Assignment" cardinality="+" feature="values" operator="+=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.4"/>
</elements>
</elements>
<elements xsi:type="xtext:Assignment" feature="eol" operator="+=">
<terminal xsi:type="xtext:Alternatives">
<elements xsi:type="xtext:RuleCall" rule="//@rules.30"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.33"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.32"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.35"/>
</terminal>
</elements>
</alternatives>
@ -100,7 +100,7 @@
<terminal xsi:type="xtext:Keyword" value="~"/>
</elements>
<elements xsi:type="xtext:Assignment" feature="name" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.29"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.31"/>
</elements>
<elements xsi:type="xtext:Assignment" cardinality="*" feature="Parameters" operator="+=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.6"/>
@ -135,13 +135,13 @@
</type>
<alternatives xsi:type="xtext:Group">
<elements xsi:type="xtext:Assignment" feature="name" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.25"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.27"/>
</elements>
<elements xsi:type="xtext:Assignment" cardinality="*" feature="Expressions" operator="+=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.12"/>
</elements>
<elements xsi:type="xtext:Assignment" feature="endName" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.26"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.28"/>
</elements>
</alternatives>
</rules>
@ -153,9 +153,11 @@
<elements xsi:type="xtext:Assignment" feature="name" operator="=">
<terminal xsi:type="xtext:Alternatives">
<elements xsi:type="xtext:RuleCall" rule="//@rules.21"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.22"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.24"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.19"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.20"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.22"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.23"/>
</terminal>
</elements>
<elements xsi:type="xtext:Assignment" cardinality="*" feature="Expressions" operator="+=">
@ -163,14 +165,14 @@
</elements>
<elements xsi:type="xtext:Group" cardinality="?">
<elements xsi:type="xtext:Assignment" feature="Elses" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.23"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.25"/>
</elements>
<elements xsi:type="xtext:Assignment" cardinality="+" feature="ElseExpressions" operator="+=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.12"/>
</elements>
</elements>
<elements xsi:type="xtext:Assignment" feature="endName" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.24"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.26"/>
</elements>
</alternatives>
</rules>
@ -209,7 +211,7 @@
<classifier xsi:type="ecore:EClass" href="http://www.wesnoth.org/WML#//WMLTextdomain"/>
</type>
<alternatives xsi:type="xtext:Assignment" feature="name" operator="=">
<terminal xsi:type="xtext:RuleCall" rule="//@rules.27"/>
<terminal xsi:type="xtext:RuleCall" rule="//@rules.29"/>
</alternatives>
</rules>
<rules xsi:type="xtext:ParserRule" name="WMLLuaCode">
@ -235,8 +237,8 @@
</type>
<alternatives xsi:type="xtext:Assignment" feature="value" operator="=">
<terminal xsi:type="xtext:Alternatives">
<elements xsi:type="xtext:RuleCall" rule="//@rules.29"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.28"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.31"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.30"/>
<elements xsi:type="xtext:Keyword" value="_"/>
<elements xsi:type="xtext:Keyword" value="~"/>
<elements xsi:type="xtext:Keyword" value="."/>
@ -245,7 +247,7 @@
<elements xsi:type="xtext:Keyword" value="/"/>
<elements xsi:type="xtext:Keyword" value="("/>
<elements xsi:type="xtext:Keyword" value=")"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.32"/>
<elements xsi:type="xtext:RuleCall" rule="//@rules.34"/>
</terminal>
</alternatives>
</rules>
@ -328,6 +330,42 @@
</elements>
</alternatives>
</rules>
<rules xsi:type="xtext:TerminalRule" name="IFVER">
<type metamodel="//@metamodelDeclarations.1">
<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="#ifver"/>
<elements xsi:type="xtext:NegatedToken" cardinality="*">
<terminal xsi:type="xtext:Alternatives">
<elements xsi:type="xtext:Keyword" value="&#xA;"/>
<elements xsi:type="xtext:Keyword" value="&#xD;"/>
</terminal>
</elements>
<elements xsi:type="xtext:Group" cardinality="?">
<elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
<elements xsi:type="xtext:Keyword" value="&#xA;"/>
</elements>
</alternatives>
</rules>
<rules xsi:type="xtext:TerminalRule" name="IFNVER">
<type metamodel="//@metamodelDeclarations.1">
<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="#ifnver"/>
<elements xsi:type="xtext:NegatedToken" cardinality="*">
<terminal xsi:type="xtext:Alternatives">
<elements xsi:type="xtext:Keyword" value="&#xA;"/>
<elements xsi:type="xtext:Keyword" value="&#xD;"/>
</terminal>
</elements>
<elements xsi:type="xtext:Group" cardinality="?">
<elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
<elements xsi:type="xtext:Keyword" value="&#xA;"/>
</elements>
</alternatives>
</rules>
<rules xsi:type="xtext:TerminalRule" name="IFNDEF">
<type metamodel="//@metamodelDeclarations.1">
<classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

View file

@ -1704,12 +1704,12 @@ protected class WMLMacroDefine_EndNameAssignment_2 extends AssignmentToken {
/************ begin Rule WMLPreprocIF ****************
*
* WMLPreprocIF:
* name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE) Expressions+=WMLValuedExpression* (Elses=ELSE
* name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER) Expressions+=WMLValuedExpression* (Elses=ELSE
* ElseExpressions+=WMLValuedExpression+)? endName=ENDIF;
*
**/
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE) Expressions+=WMLValuedExpression* (Elses=ELSE
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER) Expressions+=WMLValuedExpression* (Elses=ELSE
// ElseExpressions+=WMLValuedExpression+)? endName=ENDIF
protected class WMLPreprocIF_Group extends GroupToken {
@ -1739,7 +1739,7 @@ protected class WMLPreprocIF_Group extends GroupToken {
}
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE)
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER)
protected class WMLPreprocIF_NameAssignment_0 extends AssignmentToken {
public WMLPreprocIF_NameAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
@ -1782,6 +1782,16 @@ protected class WMLPreprocIF_NameAssignment_0 extends AssignmentToken {
element = grammarAccess.getWMLPreprocIFAccess().getNameIFNHAVETerminalRuleCall_0_0_3();
return obj;
}
if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getWMLPreprocIFAccess().getNameIFVERTerminalRuleCall_0_0_4(), value, null)) {
type = AssignmentType.TERMINAL_RULE_CALL;
element = grammarAccess.getWMLPreprocIFAccess().getNameIFVERTerminalRuleCall_0_0_4();
return obj;
}
if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getWMLPreprocIFAccess().getNameIFNVERTerminalRuleCall_0_0_5(), value, null)) {
type = AssignmentType.TERMINAL_RULE_CALL;
element = grammarAccess.getWMLPreprocIFAccess().getNameIFNVERTerminalRuleCall_0_0_5();
return obj;
}
return null;
}

View file

@ -741,6 +741,36 @@ ruleWMLPreprocIF returns [EObject current=null]
"IFNHAVE");
}
| lv_name_0_5=RULE_IFVER
{
newLeafNode(lv_name_0_5, grammarAccess.getWMLPreprocIFAccess().getNameIFVERTerminalRuleCall_0_0_4());
}
{
if ($current==null) {
$current = createModelElement(grammarAccess.getWMLPreprocIFRule());
}
setWithLastConsumed(
$current,
"name",
lv_name_0_5,
"IFVER");
}
| lv_name_0_6=RULE_IFNVER
{
newLeafNode(lv_name_0_6, grammarAccess.getWMLPreprocIFAccess().getNameIFNVERTerminalRuleCall_0_0_5());
}
{
if ($current==null) {
$current = createModelElement(grammarAccess.getWMLPreprocIFRule());
}
setWithLastConsumed(
$current,
"name",
lv_name_0_6,
"IFNVER");
}
)
)
@ -1354,6 +1384,10 @@ RULE_IFNHAVE : '#ifnhave' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFDEF : '#ifdef' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFVER : '#ifver' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFNVER : '#ifnver' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_IFNDEF : '#ifndef' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_ELSE : '#else' ~(('\n'|'\r'))* ('\r'? '\n')?;

View file

@ -1,4 +1,4 @@
RULE_LUA_CODE=16
RULE_LUA_CODE=18
RULE_IFDEF=9
RULE_ID=4
T__29=29
@ -9,38 +9,40 @@ T__25=25
T__24=24
T__23=23
T__22=22
RULE_ANY_OTHER=18
T__21=21
T__20=20
RULE_ANY_OTHER=20
RULE_IFNDEF=10
RULE_EOL=5
RULE_TEXTDOMAIN=15
RULE_TEXTDOMAIN=17
RULE_IFNHAVE=12
RULE_SL_COMMENT=6
RULE_IFNVER=14
T__30=30
T__31=31
RULE_STRING=17
RULE_STRING=19
T__32=32
T__33=33
RULE_ENDIF=14
RULE_ENDIF=16
T__34=34
T__35=35
T__36=36
RULE_DEFINE=7
RULE_IFVER=13
RULE_ENDDEF=8
RULE_IFHAVE=11
RULE_WS=19
RULE_ELSE=13
'$'=31
'}'=28
'~'=27
'/'=32
'{'=25
'='=24
'('=33
'['=20
'[/'=23
'+'=21
'_'=29
')'=34
'.'=30
']'=22
'./'=26
RULE_WS=21
RULE_ELSE=15
'$'=33
'}'=30
'~'=29
'/'=34
'{'=27
'='=26
'('=35
'['=22
'[/'=25
'+'=23
'_'=31
')'=36
'.'=32
']'=24
'./'=28

View file

@ -366,6 +366,8 @@ public class WMLGrammarAccess extends AbstractGrammarElementFinder {
private final RuleCall cNameIFNDEFTerminalRuleCall_0_0_1 = (RuleCall)cNameAlternatives_0_0.eContents().get(1);
private final RuleCall cNameIFHAVETerminalRuleCall_0_0_2 = (RuleCall)cNameAlternatives_0_0.eContents().get(2);
private final RuleCall cNameIFNHAVETerminalRuleCall_0_0_3 = (RuleCall)cNameAlternatives_0_0.eContents().get(3);
private final RuleCall cNameIFVERTerminalRuleCall_0_0_4 = (RuleCall)cNameAlternatives_0_0.eContents().get(4);
private final RuleCall cNameIFNVERTerminalRuleCall_0_0_5 = (RuleCall)cNameAlternatives_0_0.eContents().get(5);
private final Assignment cExpressionsAssignment_1 = (Assignment)cGroup.eContents().get(1);
private final RuleCall cExpressionsWMLValuedExpressionParserRuleCall_1_0 = (RuleCall)cExpressionsAssignment_1.eContents().get(0);
private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
@ -377,18 +379,18 @@ public class WMLGrammarAccess extends AbstractGrammarElementFinder {
private final RuleCall cEndNameENDIFTerminalRuleCall_3_0 = (RuleCall)cEndNameAssignment_3.eContents().get(0);
//WMLPreprocIF:
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE) Expressions+=WMLValuedExpression* (Elses=ELSE
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER) Expressions+=WMLValuedExpression* (Elses=ELSE
// ElseExpressions+=WMLValuedExpression+)? endName=ENDIF;
public ParserRule getRule() { return rule; }
//name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE) Expressions+=WMLValuedExpression* (Elses=ELSE
//name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER) Expressions+=WMLValuedExpression* (Elses=ELSE
//ElseExpressions+=WMLValuedExpression+)? endName=ENDIF
public Group getGroup() { return cGroup; }
//name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE)
//name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER)
public Assignment getNameAssignment_0() { return cNameAssignment_0; }
//IFDEF | IFNDEF | IFHAVE | IFNHAVE
//IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER
public Alternatives getNameAlternatives_0_0() { return cNameAlternatives_0_0; }
//IFDEF
@ -403,6 +405,12 @@ public class WMLGrammarAccess extends AbstractGrammarElementFinder {
//IFNHAVE
public RuleCall getNameIFNHAVETerminalRuleCall_0_0_3() { return cNameIFNHAVETerminalRuleCall_0_0_3; }
//IFVER
public RuleCall getNameIFVERTerminalRuleCall_0_0_4() { return cNameIFVERTerminalRuleCall_0_0_4; }
//IFNVER
public RuleCall getNameIFNVERTerminalRuleCall_0_0_5() { return cNameIFNVERTerminalRuleCall_0_0_5; }
//Expressions+=WMLValuedExpression*
public Assignment getExpressionsAssignment_1() { return cExpressionsAssignment_1; }
@ -676,6 +684,8 @@ public class WMLGrammarAccess extends AbstractGrammarElementFinder {
private TerminalRule tIFHAVE;
private TerminalRule tIFNHAVE;
private TerminalRule tIFDEF;
private TerminalRule tIFVER;
private TerminalRule tIFNVER;
private TerminalRule tIFNDEF;
private TerminalRule tELSE;
private TerminalRule tENDIF;
@ -794,7 +804,7 @@ public class WMLGrammarAccess extends AbstractGrammarElementFinder {
}
//WMLPreprocIF:
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE) Expressions+=WMLValuedExpression* (Elses=ELSE
// name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER) Expressions+=WMLValuedExpression* (Elses=ELSE
// ElseExpressions+=WMLValuedExpression+)? endName=ENDIF;
public WMLPreprocIFElements getWMLPreprocIFAccess() {
return (pWMLPreprocIF != null) ? pWMLPreprocIF : (pWMLPreprocIF = new WMLPreprocIFElements());
@ -911,6 +921,18 @@ public class WMLGrammarAccess extends AbstractGrammarElementFinder {
return (tIFDEF != null) ? tIFDEF : (tIFDEF = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "IFDEF"));
}
//terminal IFVER:
// "#ifver" !("\n" | "\r")* ("\r"? "\n")?;
public TerminalRule getIFVERRule() {
return (tIFVER != null) ? tIFVER : (tIFVER = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "IFVER"));
}
//terminal IFNVER:
// "#ifnver" !("\n" | "\r")* ("\r"? "\n")?;
public TerminalRule getIFNVERRule() {
return (tIFNVER != null) ? tIFNVER : (tIFNVER = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "IFNVER"));
}
//terminal IFNDEF:
// "#ifndef" !("\n" | "\r")* ("\r"? "\n")?;
public TerminalRule getIFNDEFRule() {

View file

@ -42,7 +42,7 @@ WMLMacroDefine:
endName = ENDDEF;
WMLPreprocIF:
name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE)
name=(IFDEF | IFNDEF | IFHAVE | IFNHAVE | IFVER | IFNVER)
Expressions += WMLValuedExpression *
(
Elses = ELSE
@ -77,11 +77,13 @@ MacroTokens:
terminal LUA_CODE : '<<' -> '>>';
// Preprocessor terminals
terminal IFHAVE : '#ifhave' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFNHAVE : '#ifnhave' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFDEF : '#ifdef' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFNDEF : '#ifndef' !('\n'|'\r')* ('\r'? '\n')?;
terminal ELSE : '#else' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFHAVE : '#ifhave' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFNHAVE : '#ifnhave' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFDEF : '#ifdef' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFVER : '#ifver' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFNVER : '#ifnver' !('\n'|'\r')* ('\r'? '\n')?;
terminal IFNDEF : '#ifndef' !('\n'|'\r')* ('\r'? '\n')?;
terminal ELSE : '#else' !('\n'|'\r')* ('\r'? '\n')?;
terminal ENDIF : '#endif' !('\n'|'\r')* ('\r'? '\n')?;
terminal DEFINE : '#define' !('\n'|'\r')* ('\r'? '\n')?;
terminal ENDDEF : '#enddef' !('\n'|'\r')* ('\r'? '\n')?;
@ -89,7 +91,7 @@ terminal TEXTDOMAIN : '#textdomain' !('\n'|'\r')* ('\r'? '\n')?;
// end preprocessor terminals
terminal STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'"'|"'"|'\\') | !('\\'|'"') )* '"';
terminal ID : ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'-'|',')+;
terminal EOL : ('\r'? '\n');
terminal EOL : ('\r'? '\n');
terminal WS : (' '|'\t')+;
terminal ANY_OTHER : .;
terminal SL_COMMENT : '#' !('\n'|'\r')* ('\r'? '\n')?;