public void ParsePrintAddingStringsTest() { Tokens tokens = new Tokens (); tokens.Add ( new Token ( "print" ) ); tokens.Add ( new Token ( "'ongle'" ) ); tokens.Add ( new Token ( "+" ) ); tokens.Add ( new Token ( "'ooog'" ) ); Parser parser = new Parser ( TestModule.GetTestKernel () ); parser.Parse ( tokens ); Assert.IsInstanceOfType ( typeof ( ArithExpr ), ( (Print)parser.MainBlock[0] ).Expr ); }
public void ExpressionAssignmentTest() { Tokens tokens = new Tokens (); tokens.Add ( new Token ( "ong" ) ); tokens.Add ( new Token ( "=" ) ); tokens.Add ( new Token ( "bong" ) ); tokens.Add ( new Token ( "+" ) ); tokens.Add ( new Token ( "10" ) ); Parser parser = new Parser ( TestModule.GetTestKernel () ); parser.Parse ( tokens ); ArithExpr expression = (ArithExpr)( (Assign)parser.MainBlock[0] ).Expr; Assert.IsInstanceOfType ( typeof ( Variable ), expression.Left); Assert.AreEqual ( ArithOp.Add, expression.Op ); Assert.AreEqual ( 10, ((NumberLiteral) expression.Right).Value ); }
private static Parser ParseSimpleIf() { Tokens tokens = new Tokens (); tokens.Add ( new Token ( "if" ) ); tokens.Add ( new Token ( "x" ) ); tokens.Add ( new Token ( "==" ) ); tokens.Add ( new Token ( "5" ) ); tokens.Add ( new Token ( "{" ) ); tokens.Add ( new Token ( "print" ) ); tokens.Add ( new Token ( "'yay'" ) ); tokens.Add ( new Token ( "}" ) ); Parser parser = new Parser ( TestModule.GetTestKernel () ); parser.Parse ( tokens ); return parser; }
public void VariableAssignmentTest() { Tokens tokens = new Tokens (); tokens.Add ( new Token ( "ong" ) ); tokens.Add ( new Token ( "=" ) ); tokens.Add ( new Token ( "10" ) ); Parser parser = new Parser ( TestModule.GetTestKernel () ); parser.Parse ( tokens ); Assert.AreEqual ( 1, parser.MainBlock.Count ); Assert.IsInstanceOfType ( typeof ( Assign ), parser.MainBlock[0] ); Assign assign = parser.MainBlock[0] as Assign; Assert.IsInstanceOfType ( typeof ( Variable ), assign.Ident ); Assert.AreEqual ( ((Variable)assign.Ident).Ident, "ong" ); }
public void StringLiteralPrintTest() { Tokens tokens = new Tokens (); tokens.Add ( new Token ( "print" ) ); tokens.Add ( new Token ( "'ongle'" ) ); Parser parser = new Parser ( TestModule.GetTestKernel () ); parser.Parse ( tokens ); Assert.IsInstanceOfType ( typeof ( Print ), parser.MainBlock[0] ); Print print = (Print)parser.MainBlock[0]; Assert.IsInstanceOfType ( typeof ( StringLiteral ), print.Expr ); Assert.AreEqual ( ((StringLiteral)print.Expr).Value, "ongle" ); }
public void ParseSimplePrintTest() { Tokens tokens = new Tokens(); tokens.Add(new Token("print")); tokens.Add(new Token("'ongle'")); Parser parser = new Parser ( TestModule.GetTestKernel() ); parser.Parse ( tokens ); Assert.AreEqual(1, parser.MainBlock.Count); Assert.IsInstanceOfType ( typeof ( Print ), parser.MainBlock[0] ); }
static Tokens CreateSimpleArray() { Tokens tokens = new Tokens (); tokens.Add ( new Token ( "(" ) ); tokens.Add ( new Token ( "'a'" ) ); tokens.Add ( new Token ( "," ) ); tokens.Add ( new Token ( "'b'" ) ); tokens.Add ( new Token ( "," ) ); tokens.Add ( new Token ( "3" ) ); tokens.Add ( new Token ( ")" ) ); return tokens; }