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_isAlwaysTrueSymbol() { Assert.IsTrue(PropositionSymbol.IsAlwaysTrueSymbol("True")); Assert.IsTrue(PropositionSymbol.IsAlwaysTrueSymbol("tRue")); Assert.IsTrue(PropositionSymbol.IsAlwaysTrueSymbol("trUe")); Assert.IsTrue(PropositionSymbol.IsAlwaysTrueSymbol("truE")); Assert.IsTrue(PropositionSymbol.IsAlwaysTrueSymbol("TRUE")); Assert.IsTrue(PropositionSymbol.IsAlwaysTrueSymbol("true")); // Assert.IsFalse(PropositionSymbol.IsAlwaysTrueSymbol("Tru3")); Assert.IsFalse(PropositionSymbol.IsAlwaysTrueSymbol("True ")); Assert.IsFalse(PropositionSymbol.IsAlwaysTrueSymbol(" True")); }