public IHttpActionResult Post([FromBody]string source) { if (source == null) { return BadRequest(); } List<ParseException> errors = new List<ParseException>(); List<ParseExceptionResult> errorResults = new List<ParseExceptionResult>(); Parser parser = new Parser(source); parser.parse(); CFGVisitor cfgv = new CFGVisitor(parser.ast); ScopeVisitor sv = new ScopeVisitor(parser.ast); DDGVisitor ddgv = new DDGVisitor(parser.ast); errors.AddRange(parser.errors); errors.AddRange(sv.errors); errors.AddRange(ddgv.errors); foreach (ParseException error in errors) { errorResults.Add(new ParseExceptionResult(error.row, error.column, error.reason, error.level.ToString())); } return Ok(errorResults); }
public IHttpActionResult Post([FromBody]string source) { if (source == null) { return BadRequest(); } Parser parser = new Parser(source); parser.parse(); CFGVisitor cfgv = new CFGVisitor(parser.ast); ScopeVisitor sv = new ScopeVisitor(parser.ast); DDGVisitor ddgv = new DDGVisitor(parser.ast); JSONVisitor jsonv = new JSONVisitor(parser.ast); return Ok(jsonv.graph); }
public ControlFlowGraph(BlockSyntax body, SemanticModel model) { var visitor = new CFGVisitor(this); visitor.PopulateCFG(body, model); }