internal static T CheckParse <T>( Func <OperandLexer, T> parseFunc, String str, Boolean success, String message) { OperandLexer lexer = OperandLexerTest.MakeFrom(str); lexer.MoveNext(); try { T result = parseFunc(lexer); Assert.IsTrue(success, message); return(result); } catch (Casl2SimulatorException) { Assert.IsFalse(success, message); return(default(T)); } }
private void CheckReadCurrentAs( String str, TokenType expectedType, Boolean success, Token expectedResult, Token expectedCurrent, String message) { OperandLexer lexer = MakeFrom(str); lexer.MoveNext(); try { Token actualResult = lexer.ReadCurrentAs(expectedType); Assert.IsTrue(success, message); TokenTest.Check(expectedResult, actualResult, "Result: " + message); CheckCurrentToken(expectedCurrent, lexer, "Current: " + message); } catch (Casl2SimulatorException) { Assert.IsFalse(success, message); } }
private static void CheckParse( String str, Constant[] expectedConstants, TokenType expectedLeftTokenType, String message) { ReadBuffer buffer = new ReadBuffer(str); OperandLexer lexer = new OperandLexer(buffer); lexer.MoveNext(); try { ConstantCollection actualConstants = ConstantCollection.Parse(lexer); Assert.IsNotNull(expectedConstants, message); TestUtils.CheckEnumerable(expectedConstants, actualConstants, ConstantTest.Check, message); TokenType actualLeftTokenType = lexer.CurrentToken.Type; Assert.AreEqual(expectedLeftTokenType, actualLeftTokenType, message); } catch (Casl2SimulatorException) { Assert.IsNull(expectedConstants, message); } }
private void CheckMoveNext(String str, Token[] expectedArray, String message) { OperandLexer lexer = MakeFrom(str); expectedArray.ForEach((expected) => CheckMoveNextOne(lexer, expected, message)); }
private void CheckCurrentToken(Token expected, OperandLexer lexer, String message) { Token actual = lexer.CurrentToken; TokenTest.Check(expected, actual, message); }