private OptimizedStateMachine ProduceStateMachine(string fsmSyntax) { var asmSyntax = new Parser(Tokenizer.Create()).Parse(fsmSyntax); var ast = new Semantic.SemanticAnalyzer().Analize(asmSyntax); var optimizer = new Optimize.Optimizer(); return(optimizer.Optimize(ast)); }
protected static SemanticStateMachine ProduceAst(string input) { var analizer = new Semantic.SemanticAnalyzer(); var fsmSyntax = new Parser(Tokenizer.Create()).Parse(input); var ast = analizer.Analize(fsmSyntax); return(ast); }
private void AssertWithHeader(string full, string expected, EmptyVisitor visitor) { var syntax = new Parser(Tokenizer.Create()).Parse(full); var semantic = new Semantic.SemanticAnalyzer().Analize(syntax); var machine = new Optimize.Optimizer().Optimize(semantic); var node = new NscGenerator().Generate(machine); node.Accept(visitor); visitor.Result.Should().Be(expected); }
private void AssertGenerated(string transitionSyntax, string expected, EmptyVisitor visitor) { var header = "Initial: I FSM:f Actions:acts"; var syntax = new Parser(Tokenizer.Create()).Parse(header + transitionSyntax); var semantic = new Semantic.SemanticAnalyzer().Analize(syntax); var machine = new Optimize.Optimizer().Optimize(semantic); var node = new NscGenerator().Generate(machine); node.Accept(visitor); visitor.Result.Should().Be(expected); }
public string Generate(string input) { var syntax = new Parser(Tokenizer.Create()).Parse(input); var semantic = new Semantic.SemanticAnalyzer().Analize(syntax); var machine = new Optimize.Optimizer().Optimize(semantic); var node = new NscGenerator().Generate(machine); var visitor = new CsharpVisitor(); node.Accept(visitor); return(visitor.Result); }