예제 #1
0
        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 );
        }
예제 #2
0
        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 );
        }
예제 #3
0
        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;
        }
예제 #4
0
        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" );
        }
예제 #5
0
        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" );
        }
예제 #6
0
        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] );
        }
예제 #7
0
파일: ArrayTest.cs 프로젝트: mdcuesta/Ongle
        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;
        }