diff --git a/src/main/java/org/sablecc/sablecc/lexer/Lexer.java b/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
index 2e4873e3279cb57f0aca6ef7ab3ec5cdb180b587..32c197b53ddebddf646664391533771079f76fbc 100644
--- a/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
+++ b/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
@@ -170,202 +170,198 @@ public class Lexer
             }
             else
             {
-                if(acceptToken != -1)
+                Token tok;
+                switch(acceptToken)
                 {
-                    Token tok;
-                    switch(acceptToken)
-                    {
-                        case 0:
-                            tok = new TPkgId(getText(acceptLength), startLine + 1, startPos + 1);
-                            switch(state.ordinal())
-                            {
-                                case 1: state = State.PACKAGE; break;
-                            }
-                            break;
+                    case -1:
+                        if(this.text.length() > 0)
+                        {
+                            throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Unknown token: " + this.text);
+                        }
 
-                        case 1:
-                            tok = new TPackage(startLine + 1, startPos + 1);
-                            switch(state.ordinal())
-                            {
-                                case 0: state = State.PACKAGE; break;
-                            }
-                            break;
+                        return new EOF(startLine + 1, startPos + 1);
 
-                        case 2:
-                            tok = new TStates(startLine + 1, startPos + 1);
-                            break;
+                    case 0:
+                        tok = new TPkgId(getText(acceptLength), startLine + 1, startPos + 1);
+                        switch(state.ordinal())
+                        {
+                            case 1: state = State.PACKAGE; break;
+                        }
+                        break;
 
-                        case 3:
-                            tok = new THelpers(startLine + 1, startPos + 1);
-                            break;
+                    case 1:
+                        tok = new TPackage(startLine + 1, startPos + 1);
+                        switch(state.ordinal())
+                        {
+                            case 0: state = State.PACKAGE; break;
+                        }
+                        break;
 
-                        case 4:
-                            tok = new TTokens(startLine + 1, startPos + 1);
-                            break;
+                    case 2:
+                        tok = new TStates(startLine + 1, startPos + 1);
+                        break;
 
-                        case 5:
-                            tok = new TIgnored(startLine + 1, startPos + 1);
-                            break;
+                    case 3:
+                        tok = new THelpers(startLine + 1, startPos + 1);
+                        break;
 
-                        case 6:
-                            tok = new TProductions(startLine + 1, startPos + 1);
-                            break;
+                    case 4:
+                        tok = new TTokens(startLine + 1, startPos + 1);
+                        break;
 
-                        case 7:
-                            tok = new TAbstract(startLine + 1, startPos + 1);
-                            break;
+                    case 5:
+                        tok = new TIgnored(startLine + 1, startPos + 1);
+                        break;
 
-                        case 8:
-                            tok = new TSyntax(startLine + 1, startPos + 1);
-                            break;
+                    case 6:
+                        tok = new TProductions(startLine + 1, startPos + 1);
+                        break;
 
-                        case 9:
-                            tok = new TTree(startLine + 1, startPos + 1);
-                            break;
+                    case 7:
+                        tok = new TAbstract(startLine + 1, startPos + 1);
+                        break;
 
-                        case 10:
-                            tok = new TNew(startLine + 1, startPos + 1);
-                            break;
+                    case 8:
+                        tok = new TSyntax(startLine + 1, startPos + 1);
+                        break;
 
-                        case 11:
-                            tok = new TNull(startLine + 1, startPos + 1);
-                            break;
+                    case 9:
+                        tok = new TTree(startLine + 1, startPos + 1);
+                        break;
 
-                        case 12:
-                            tok = new TTokenSpecifier(startLine + 1, startPos + 1);
-                            break;
+                    case 10:
+                        tok = new TNew(startLine + 1, startPos + 1);
+                        break;
 
-                        case 13:
-                            tok = new TProductionSpecifier(startLine + 1, startPos + 1);
-                            break;
+                    case 11:
+                        tok = new TNull(startLine + 1, startPos + 1);
+                        break;
 
-                        case 14:
-                            tok = new TDot(startLine + 1, startPos + 1);
-                            break;
+                    case 12:
+                        tok = new TTokenSpecifier(startLine + 1, startPos + 1);
+                        break;
 
-                        case 15:
-                            tok = new TDDot(startLine + 1, startPos + 1);
-                            break;
+                    case 13:
+                        tok = new TProductionSpecifier(startLine + 1, startPos + 1);
+                        break;
 
-                        case 16:
-                            tok = new TSemicolon(startLine + 1, startPos + 1);
-                            switch(state.ordinal())
-                            {
-                                case 0: state = State.NORMAL; break;
-                                case 1: state = State.NORMAL; break;
-                            }
-                            break;
+                    case 14:
+                        tok = new TDot(startLine + 1, startPos + 1);
+                        break;
 
-                        case 17:
-                            tok = new TEqual(startLine + 1, startPos + 1);
-                            break;
+                    case 15:
+                        tok = new TDDot(startLine + 1, startPos + 1);
+                        break;
 
-                        case 18:
-                            tok = new TLBkt(startLine + 1, startPos + 1);
-                            break;
+                    case 16:
+                        tok = new TSemicolon(startLine + 1, startPos + 1);
+                        switch(state.ordinal())
+                        {
+                            case 0: state = State.NORMAL; break;
+                            case 1: state = State.NORMAL; break;
+                        }
+                        break;
 
-                        case 19:
-                            tok = new TRBkt(startLine + 1, startPos + 1);
-                            break;
+                    case 17:
+                        tok = new TEqual(startLine + 1, startPos + 1);
+                        break;
 
-                        case 20:
-                            tok = new TLPar(startLine + 1, startPos + 1);
-                            break;
+                    case 18:
+                        tok = new TLBkt(startLine + 1, startPos + 1);
+                        break;
 
-                        case 21:
-                            tok = new TRPar(startLine + 1, startPos + 1);
-                            break;
+                    case 19:
+                        tok = new TRBkt(startLine + 1, startPos + 1);
+                        break;
 
-                        case 22:
-                            tok = new TLBrace(startLine + 1, startPos + 1);
-                            break;
+                    case 20:
+                        tok = new TLPar(startLine + 1, startPos + 1);
+                        break;
 
-                        case 23:
-                            tok = new TRBrace(startLine + 1, startPos + 1);
-                            break;
+                    case 21:
+                        tok = new TRPar(startLine + 1, startPos + 1);
+                        break;
 
-                        case 24:
-                            tok = new TPlus(startLine + 1, startPos + 1);
-                            break;
+                    case 22:
+                        tok = new TLBrace(startLine + 1, startPos + 1);
+                        break;
 
-                        case 25:
-                            tok = new TMinus(startLine + 1, startPos + 1);
-                            break;
+                    case 23:
+                        tok = new TRBrace(startLine + 1, startPos + 1);
+                        break;
 
-                        case 26:
-                            tok = new TQMark(startLine + 1, startPos + 1);
-                            break;
+                    case 24:
+                        tok = new TPlus(startLine + 1, startPos + 1);
+                        break;
 
-                        case 27:
-                            tok = new TStar(startLine + 1, startPos + 1);
-                            break;
+                    case 25:
+                        tok = new TMinus(startLine + 1, startPos + 1);
+                        break;
 
-                        case 28:
-                            tok = new TBar(startLine + 1, startPos + 1);
-                            break;
+                    case 26:
+                        tok = new TQMark(startLine + 1, startPos + 1);
+                        break;
 
-                        case 29:
-                            tok = new TComma(startLine + 1, startPos + 1);
-                            break;
+                    case 27:
+                        tok = new TStar(startLine + 1, startPos + 1);
+                        break;
 
-                        case 30:
-                            tok = new TSlash(startLine + 1, startPos + 1);
-                            break;
+                    case 28:
+                        tok = new TBar(startLine + 1, startPos + 1);
+                        break;
 
-                        case 31:
-                            tok = new TArrow(startLine + 1, startPos + 1);
-                            break;
+                    case 29:
+                        tok = new TComma(startLine + 1, startPos + 1);
+                        break;
 
-                        case 32:
-                            tok = new TColon(startLine + 1, startPos + 1);
-                            break;
+                    case 30:
+                        tok = new TSlash(startLine + 1, startPos + 1);
+                        break;
 
-                        case 33:
-                            tok = new TId(getText(acceptLength), startLine + 1, startPos + 1);
-                            break;
+                    case 31:
+                        tok = new TArrow(startLine + 1, startPos + 1);
+                        break;
 
-                        case 34:
-                            tok = new TChar(getText(acceptLength), startLine + 1, startPos + 1);
-                            break;
+                    case 32:
+                        tok = new TColon(startLine + 1, startPos + 1);
+                        break;
 
-                        case 35:
-                            tok = new TDecChar(getText(acceptLength), startLine + 1, startPos + 1);
-                            break;
+                    case 33:
+                        tok = new TId(getText(acceptLength), startLine + 1, startPos + 1);
+                        break;
 
-                        case 36:
-                            tok = new THexChar(getText(acceptLength), startLine + 1, startPos + 1);
-                            break;
+                    case 34:
+                        tok = new TChar(getText(acceptLength), startLine + 1, startPos + 1);
+                        break;
 
-                        case 37:
-                            tok = new TString(getText(acceptLength), startLine + 1, startPos + 1);
-                            break;
+                    case 35:
+                        tok = new TDecChar(getText(acceptLength), startLine + 1, startPos + 1);
+                        break;
 
-                        case 38:
-                            tok = new TBlank(getText(acceptLength), startLine + 1, startPos + 1);
-                            break;
+                    case 36:
+                        tok = new THexChar(getText(acceptLength), startLine + 1, startPos + 1);
+                        break;
 
-                        case 39:
-                            tok = new TComment(getText(acceptLength), startLine + 1, startPos + 1);
-                            break;
+                    case 37:
+                        tok = new TString(getText(acceptLength), startLine + 1, startPos + 1);
+                        break;
 
-                        default:
-                            throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Internal lexer error: invalid accept table entry " + acceptToken + ", current text: " + this.text);
-                    }
-                    pushBack(acceptLength);
-                    this.pos = acceptPos;
-                    this.line = acceptLine;
-                    this.cr = acceptCr;
-                    return tok;
-                }
-                else
-                {
-                    if(this.text.length() > 0)
-                    {
-                        throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Unknown token: " + this.text);
-                    }
+                    case 38:
+                        tok = new TBlank(getText(acceptLength), startLine + 1, startPos + 1);
+                        break;
 
-                    return new EOF(startLine + 1, startPos + 1);
+                    case 39:
+                        tok = new TComment(getText(acceptLength), startLine + 1, startPos + 1);
+                        break;
+
+                    default:
+                        throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Internal lexer error: invalid accept table entry " + acceptToken + ", current text: " + this.text);
                 }
+                pushBack(acceptLength);
+                this.pos = acceptPos;
+                this.line = acceptLine;
+                this.cr = acceptCr;
+                return tok;
             }
         }
     }
diff --git a/src/main/resources/org/sablecc/sablecc/lexer.txt b/src/main/resources/org/sablecc/sablecc/lexer.txt
index 4e552fa254acee1eb97732fd5212a15501dcea7a..d070d6e7502f9dd8496892798ce59bfeecc82f75 100644
--- a/src/main/resources/org/sablecc/sablecc/lexer.txt
+++ b/src/main/resources/org/sablecc/sablecc/lexer.txt
@@ -194,67 +194,63 @@ public class Lexer
             }
             else
             {
-                if(acceptToken != -1)
+                Token tok;
+                switch(acceptToken)
                 {
-                    Token tok;
-                    switch(acceptToken)
-                    {
+                    case -1:
+                        if(this.text.length() > 0)
+                        {
+                            throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Unknown token: " + this.text);
+                        }
+
+                        return new EOF(startLine + 1, startPos + 1);
+
 
 $
 
 Macro:LexerVariableToken
-                        case $0$:
-                            tok = new $1$(getText(acceptLength), startLine + 1, startPos + 1);
+                    case $0$:
+                        tok = new $1$(getText(acceptLength), startLine + 1, startPos + 1);
 
 $
 
 Macro:LexerFixedToken
-                        case $0$:
-                            tok = new $1$(startLine + 1, startPos + 1);
+                    case $0$:
+                        tok = new $1$(startLine + 1, startPos + 1);
 
 $
 
 Macro:TokenSwitchHeader
-                            switch(state.ordinal())
-                            {
+                        switch(state.ordinal())
+                        {
 
 $
 
 Macro:TokenCase
-                                case $0$: state = State.$1$; break;
+                            case $0$: state = State.$1$; break;
 
 $
 
 Macro:TokenSwitchTail
-                            }
+                        }
 
 $
 
 Macro:LexerTokenTail
-                            break;
+                        break;
 
 
 $
 
 Macro:LexerBody
-                        default:
-                            throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Internal lexer error: invalid accept table entry " + acceptToken + ", current text: " + this.text);
-                    }
-                    pushBack(acceptLength);
-                    this.pos = acceptPos;
-                    this.line = acceptLine;
-                    this.cr = acceptCr;
-                    return tok;
-                }
-                else
-                {
-                    if(this.text.length() > 0)
-                    {
-                        throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Unknown token: " + this.text);
-                    }
-
-                    return new EOF(startLine + 1, startPos + 1);
+                    default:
+                        throw new LexerException("[" + (startLine + 1) + "," + (startPos + 1) + "] Internal lexer error: invalid accept table entry " + acceptToken + ", current text: " + this.text);
                 }
+                pushBack(acceptLength);
+                this.pos = acceptPos;
+                this.line = acceptLine;
+                this.cr = acceptCr;
+                return tok;
             }
         }
     }