Example #1
0
        public void ScanExpression()
        {
            string line = "x = a*b";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding ().GetBytes ( line ) );
            Scanner scanner = new Scanner ( stream );

            Assert.AreEqual ( 5, scanner.Tokens.Count );
        }
Example #2
0
        public void ScanQuotedSingleLine()
        {
            string line = "x = 'Groove'";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding ().GetBytes ( line ) );
            Scanner scanner = new Scanner ( stream );

            Assert.AreEqual ( 3, scanner.Tokens.Count );
        }
Example #3
0
        public void ScanLessThanTest()
        {
            string line = "if x < 50";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding ().GetBytes ( line ) );
            Scanner scanner = new Scanner ( stream );

            Assert.AreEqual ( 4, scanner.Tokens.Count );
        }
Example #4
0
 public void ScanBlock()
 {
     string line = @"x= {
     > 'grooveit' + y
     }";
     MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding ().GetBytes ( line ) );
     Scanner scanner = new Scanner ( stream );
     Assert.AreEqual ( 8, scanner.Tokens.Count );
 }
Example #5
0
        public void TestScanParameterArray()
        {
            string line = "$[3]";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding().GetBytes(line) );
            Scanner scanner = new Scanner (stream);

            Assert.AreEqual ("$", scanner.Tokens.PullToken());
            Assert.AreEqual ("[", scanner.Tokens.PullToken());
            Assert.AreEqual ("3", scanner.Tokens.PullToken());
            Assert.AreEqual ("]", scanner.Tokens.PullToken());
        }
Example #6
0
        public void Run( Stream program )
        {
            Scanner scanner = new Scanner ( program );

            try
            {
                Parser parser = new Parser ( _kernel );
                Block block = parser.Parse( scanner.Tokens );
                block.Execute ();
            }
            catch ( ParseException ex )
            {
                Console.WriteLine ( ex.Message );
            }
        }
Example #7
0
        public void ScanMultipleLines()
        {
            string line = @"? ya == 'oof'
            xa = 'Groove'
            end";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding ().GetBytes ( line ) );
            Scanner scanner = new Scanner ( stream );

            Assert.AreEqual ( 8, scanner.Tokens.Count );
            Assert.AreEqual ( "?", scanner.Tokens[0].Value );
            Assert.AreEqual ( "ya", scanner.Tokens[1].Value );
            Assert.AreEqual ( "==", scanner.Tokens[2].Value );
            Assert.AreEqual ( "'oof'", scanner.Tokens[3].Value );
            Assert.AreEqual ( "xa", scanner.Tokens[4].Value );
            Assert.AreEqual ( "=", scanner.Tokens[5].Value );
            Assert.AreEqual ( "'Groove'", scanner.Tokens[6].Value );
            Assert.AreEqual ( "end", scanner.Tokens[7].Value );
        }
Example #8
0
        public void TestScanSimpleArray()
        {
            string line = "x=(1,'3',4+3)";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding().GetBytes(line) );
            Scanner scanner = new Scanner (stream);

            Assert.AreEqual ("x", scanner.Tokens.PullToken());
            Assert.AreEqual ("=", scanner.Tokens.PullToken());
            Assert.AreEqual ("(", scanner.Tokens.PullToken());
            Assert.AreEqual ("1", scanner.Tokens.PullToken());
            Assert.AreEqual (",", scanner.Tokens.PullToken());
            Assert.AreEqual ("'3'", scanner.Tokens.PullToken());
            Assert.AreEqual (",", scanner.Tokens.PullToken());
            Assert.AreEqual ("4", scanner.Tokens.PullToken());
            Assert.AreEqual ("+", scanner.Tokens.PullToken());
            Assert.AreEqual ("3", scanner.Tokens.PullToken());
            Assert.AreEqual (")", scanner.Tokens.PullToken());
        }
Example #9
0
        public void ScanMultipleLines()
        {
            string line = @"if ya == 'oof'
            xa = 'Groove'
            end";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding ().GetBytes ( line ) );
            Scanner scanner = new Scanner ( stream );

            Assert.AreEqual ( 8, scanner.Tokens.Count );
            Assert.AreEqual ( "if", scanner.Tokens.PullToken () );
            Assert.AreEqual ( "ya", scanner.Tokens.PullToken () );
            Assert.AreEqual ( "==", scanner.Tokens.PullToken () );
            Assert.AreEqual ( "'oof'", scanner.Tokens.PullToken () );
            Assert.AreEqual ( "xa", scanner.Tokens.PullToken () );
            Assert.AreEqual ( "=", scanner.Tokens.PullToken () );
            Assert.AreEqual ( "'Groove'", scanner.Tokens.PullToken () );
            Assert.AreEqual ( "end", scanner.Tokens.PullToken () );
        }
Example #10
0
        public void TestTokenizeArray()
        {
            string line = "x = y[5]";
            MemoryStream stream = new MemoryStream ( new System.Text.ASCIIEncoding().GetBytes(line) );
            Scanner scanner = new Scanner (stream);

            Assert.AreEqual ("x", scanner.Tokens.PullToken());
            Assert.AreEqual ("=", scanner.Tokens.PullToken());
            Assert.AreEqual ("y", scanner.Tokens.PullToken());
            Assert.AreEqual ("[", scanner.Tokens.PullToken());
            Assert.AreEqual ("5", scanner.Tokens.PullToken());
            Assert.AreEqual ("]", scanner.Tokens.PullToken());
        }