Files
Axiom/AxiomUnitTestProject/ParserTests.cs

37 lines
1.3 KiB
C#

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
using Axiom.Utils;
using Axiom.Interpreter;
using System.IO;
namespace AxiomUnitTestProject
{
[TestClass]
public class ParserTests
{
[TestMethod]
public void ParserShouldParseAll()
{
List<String> codeLines = TestData.CodeLines();
foreach(String expression in codeLines)
{
BinaryWriter binaryWriter=new BinaryWriter(new MemoryStream());
SymbolTable symbolTable = new SymbolTable();
BinaryReader binaryReader = null;
binaryReader = new BinaryReader(Utility.StreamFromString(expression));
Scanner scanner = new Scanner(binaryReader, binaryWriter, symbolTable);
scanner.Debug=false;
Console.WriteLine("Expression:\""+expression+"\"");
Assert.IsTrue(scanner.Analyze());
binaryWriter.BaseStream.Seek(0, SeekOrigin.Begin);
BinaryReader parserReader = new BinaryReader(binaryWriter.BaseStream);
BinaryWriter parserWriter = new BinaryWriter(new MemoryStream());
Parser parser = new Parser(parserReader,parserWriter,symbolTable);
parser.Debug=true;
parser.Parse();
Assert.IsFalse(parser.IsInError,parser.LastMessage);
}
}
}
}