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 ); }
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 ); }
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 ); }
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 ); }
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()); }
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 ); } }
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 ); }
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()); }
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 () ); }
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()); }