diff --git a/Main/Ecs/Loyc.Ecs.csproj b/Main/Ecs/Loyc.Ecs.csproj
index d854158c7..318095bff 100644
--- a/Main/Ecs/Loyc.Ecs.csproj
+++ b/Main/Ecs/Loyc.Ecs.csproj
@@ -27,12 +27,12 @@
True
EcsParserGrammar.les
-
+
LLLPG
--timeout=20
EcsLexerGrammar.out.cs
-
+
LLLPG
--timeout=10
EcsParserGrammar.out.cs
diff --git a/Main/Ecs/Parser/EcsLexerGrammar.out.cs b/Main/Ecs/Parser/EcsLexerGrammar.out.cs
index e186f0bdc..93b7b2155 100644
--- a/Main/Ecs/Parser/EcsLexerGrammar.out.cs
+++ b/Main/Ecs/Parser/EcsLexerGrammar.out.cs
@@ -1,4 +1,4 @@
-// Generated from EcsLexerGrammar.les by LeMP custom tool. LeMP version: 2.8.0.0
+// Generated from EcsLexerGrammar.les by LeMP custom tool. LeMP version: 2.8.1.0
// Note: you can give command-line arguments to the tool via 'Custom Tool Namespace':
// --no-out-header Suppress this message
// --verbose Allow verbose messages (shown by VS as 'warnings')
diff --git a/Main/Ecs/Parser/EcsParserGrammar.out.cs b/Main/Ecs/Parser/EcsParserGrammar.out.cs
index 2597fa559..72c154a10 100644
--- a/Main/Ecs/Parser/EcsParserGrammar.out.cs
+++ b/Main/Ecs/Parser/EcsParserGrammar.out.cs
@@ -1,4 +1,4 @@
-// Generated from EcsParserGrammar.les by LeMP custom tool. LeMP version: 2.8.0.0
+// Generated from EcsParserGrammar.les by LeMP custom tool. LeMP version: 2.8.1.0
// Note: you can give command-line arguments to the tool via 'Custom Tool Namespace':
// --no-out-header Suppress this message
// --verbose Allow verbose messages (shown by VS as 'warnings')
@@ -2265,8 +2265,8 @@ private LNode SubExpr(Precedence context)
{
la0 = LA0;
if (context.CanParse(prec = InfixPrecedenceOf(la0))) {
- if (context.CanParse(EP.Shift)) {
- if (LT(0).EndIndex == LT(0 + 1).StartIndex) {
+ if (LT(0).EndIndex == LT(0 + 1).StartIndex) {
+ if (context.CanParse(EP.Shift)) {
la1 = LA(1);
if (PrefixExpr_set0.Contains((int) la1))
goto match1;
@@ -2288,8 +2288,8 @@ private LNode SubExpr(Precedence context)
else
goto stop;
}
- } else if (context.CanParse(EP.Shift)) {
- if (LT(0).EndIndex == LT(0 + 1).StartIndex) {
+ } else if (LT(0).EndIndex == LT(0 + 1).StartIndex) {
+ if (context.CanParse(EP.Shift)) {
la1 = LA(1);
if (la1 == TT.GT || la1 == TT.LT)
goto match4;
@@ -3248,7 +3248,7 @@ LNode KeywordStmt(int startIndex, LNodeList attrs, bool hasWordAttrs)
LNode r;
bool addAttrs = true;
string showWordAttrErrorFor = null;
- // Line 1260: ( ((IfStmt | EventDecl | DelegateDecl | SpaceDecl | EnumDecl | CheckedOrUncheckedStmt | DoStmt | CaseStmt | ReturnBreakContinueThrow TT.Semicolon) | (GotoCaseStmt TT.Semicolon / GotoStmt TT.Semicolon) | SwitchStmt | WhileStmt | ForStmt | ForEachStmt) | (UsingStmt / UsingDirective) | LockStmt | FixedStmt | TryStmt | PPStringDirective | PPNullaryDirective )
+ // Line 1260: ( ((IfStmt | EventDecl | DelegateDecl | SpaceDecl | EnumDecl | CheckedOrUncheckedStmt | DoStmt | CaseStmt | ReturnBreakContinueThrow TT.Semicolon) | (GotoCaseStmt TT.Semicolon / GotoStmt TT.Semicolon) | SwitchStmt | WhileStmt | ForStmt | ForEachStmt) | (UsingStmt / UsingDirective) | LockStmt | FixedStmt | TryStmt | PPNullaryDirective | PPStringDirective )
do {
switch (LA0) {
case TT.If:
@@ -3341,12 +3341,12 @@ LNode KeywordStmt(int startIndex, LNodeList attrs, bool hasWordAttrs)
case TT.Try:
r = TryStmt(startIndex);
break;
- case TT.CSIload: case TT.CSIreference: case TT.PPnullable:
- r = PPStringDirective(startIndex);
- break;
case TT.CSIclear: case TT.CSIhelp: case TT.CSIreset:
r = PPNullaryDirective(startIndex);
break;
+ case TT.CSIload: case TT.CSIreference: case TT.PPnullable:
+ r = PPStringDirective(startIndex);
+ break;
default:
goto error;
}
@@ -4480,8 +4480,8 @@ private LNode VarInitializer(bool isArray)
// Line 1609: (&{isArray} &{Down($LI) && Up(HasNoSemicolons())} TT.LBrace TT.RBrace / ExprStart)
la0 = LA0;
if (la0 == TT.LBrace) {
- if (isArray) {
- if (Down(0) && Up(HasNoSemicolons())) {
+ if (Down(0) && Up(HasNoSemicolons())) {
+ if (isArray) {
var lb = MatchAny();
var rb = Match((int) TT.RBrace);
// line 1613