Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
            AstJsonVisitor jsonv = new AstJsonVisitor(parser.ast);

            return(Ok(jsonv.graph));
        }
Exemple #4
0
        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);
            ClosureVisitor dfgv = new ClosureVisitor(parser.ast);
            //DDGVisitor ddgv = new DDGVisitor(parser.ast);
            bool result = dfgv.dfg.hasInterference();

            return(Ok(new Result(result)));
        }
Exemple #5
0
        public IHttpActionResult Post([FromBody] string source, [FromUri] bool performClosure)
        {
            if (source == null)
            {
                return(BadRequest());
            }

            Parser parser = new Parser(source);

            parser.parse();
            //CFGVisitor cfgv = new CFGVisitor(parser.ast);
            ScopeVisitor   sv   = new ScopeVisitor(parser.ast);
            ClosureVisitor dfgv = new ClosureVisitor(parser.ast);

            if (performClosure)
            {
                dfgv.dfg.performClosure();
            }
            //DDGVisitor ddgv = new DDGVisitor(parser.ast);
            DfgJsonConverter jsonv = new DfgJsonConverter(dfgv.dfg);


            return(Ok(jsonv.graph));
        }
Exemple #6
0
        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);

            if (parser.errors.Count == 0 && sv.errors.Count == 0)
            {
                VerificationVisitor vv = new VerificationVisitor(parser.ast);
                //vv.verifyComponents();
                errors.AddRange(vv.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));
        }