public JSParserResult Parse(string code)
        {
            var jsp            = new Jint.Parser.JavaScriptParser();
            var returnedResult = new JSParserResult();

            Program program = null;

            try
            {
                program = jsp.Parse(code, new ParserOptions()
                {
                    Tokens  = true,
                    Comment = true,
                });
            }
            catch (ParserException pex)
            {
                returnedResult.Errors.Add(new ErrorMessage()
                {
                    Message     = pex.Message,
                    StartColumn = pex.Column,
                    StartLine   = pex.LineNumber
                });
            }
            catch (Exception ex)
            {
                returnedResult.InternalErrors.Add(new ErrorMessage()
                {
                    Message     = ex.Message,
                    StartColumn = 1,
                    StartLine   = 1
                });
            }

            if (program == null)
            {
                return(returnedResult);
            }

            var comments = (program.Comments ?? Enumerable.Empty <Comment>())
                           .Select(c => new CommentWrapper(c));

            _comments = new CommentsAgregator();
            _comments.ProcessComments(comments);

            ProcessStatements(program.Body, new ParserContext(returnedResult.Nodes));

            returnedResult.TaskList = TaskListAggregator.GetTaskList(_comments.Comments, _settings.ToDoKeyWords).ToList();

            return(returnedResult);
        }
Ejemplo n.º 2
0
        public JSParserResult Parse(string code)
        {
            var jsp = new Jint.Parser.JavaScriptParser();
            var returnedResult = new JSParserResult();

            Program program = null;
            try
            {
                program = jsp.Parse(code, new ParserOptions()
                {
                    Tokens = true,
                    Comment = true,
                });
            }
            catch (ParserException pex)
            {
                returnedResult.Errors.Add(new ErrorMessage()
                {
                    Message = pex.Message,
                    StartColumn = pex.Column,
                    StartLine = pex.LineNumber
                });
            }
            catch (Exception ex)
            {
                returnedResult.InternalErrors.Add(new ErrorMessage()
                {
                    Message = ex.Message,
                    StartColumn = 1,
                    StartLine = 1
                });
            }

            if (program == null)
            {
                return returnedResult;
            }

            var comments = (program.Comments ?? Enumerable.Empty<Comment>())
                .Select(c => new CommentWrapper(c));

            _comments = new CommentsAgregator();
            _comments.ProcessComments(comments);

            ProcessStatements(program.Body, new ParserContext(returnedResult.Nodes));

            returnedResult.TaskList = TaskListAggregator.GetTaskList(_comments.Comments, _settings.ToDoKeyWords).ToList();

            return returnedResult;
        }