private Token Symbol() { int startPosition = GetCurrentPositionInInput(); StringBuilder sbuf = new StringBuilder(); // StringBuffer en Java lo hemos modernizado a StringBuilder while (PropositionSymbol.IsPropositionSymbolIdentifierPart(LookAhead(1))) { sbuf.Append(LookAhead(1)); Consume(); } string symbol = sbuf.ToString(); if (PropositionSymbol.IsAlwaysTrueSymbol(symbol)) { return(new Token(LogicTokenTypes.TRUE, PropositionSymbol.TRUE_SYMBOL, startPosition)); } else if (PropositionSymbol.IsAlwaysFalseSymbol(symbol)) { return(new Token(LogicTokenTypes.FALSE, PropositionSymbol.FALSE_SYMBOL, startPosition)); } else if (PropositionSymbol.IsPropositionSymbol(symbol)) { return(new Token(LogicTokenTypes.SYMBOL, sbuf.ToString(), startPosition)); } throw new LexerException("Lexing error on symbol " + symbol + " at position " + GetCurrentPositionInInput(), GetCurrentPositionInInput()); }
public void Test_isAlwaysFalseSymbol() { Assert.IsTrue(PropositionSymbol.IsAlwaysFalseSymbol("False")); Assert.IsTrue(PropositionSymbol.IsAlwaysFalseSymbol("fAlse")); Assert.IsTrue(PropositionSymbol.IsAlwaysFalseSymbol("faLse")); Assert.IsTrue(PropositionSymbol.IsAlwaysFalseSymbol("falSe")); Assert.IsTrue(PropositionSymbol.IsAlwaysFalseSymbol("falsE")); Assert.IsTrue(PropositionSymbol.IsAlwaysFalseSymbol("FALSE")); Assert.IsTrue(PropositionSymbol.IsAlwaysFalseSymbol("false")); // Assert.IsFalse(PropositionSymbol.IsAlwaysFalseSymbol("Fals3")); Assert.IsFalse(PropositionSymbol.IsAlwaysFalseSymbol("False ")); Assert.IsFalse(PropositionSymbol.IsAlwaysFalseSymbol(" False")); }