UNPKG

@roku-road/bright

Version:

Blazing fast parser for BrightScript that gives you ESTree like AST

31 lines (30 loc) 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ASTVisitor_1 = require("./ASTVisitor"); exports.ASTVisitor = ASTVisitor_1.ASTVisitor; const BaseASTWalker_1 = require("./BaseASTWalker"); exports.BaseASTWalker = BaseASTWalker_1.BaseASTWalker; const Parser_1 = require("./Parser"); exports.parse = Parser_1.parse; exports.RokuBRSParser = Parser_1.RokuBRSParser; const Tokens_1 = require("./Tokens"); exports.ALL_TOKENS = Tokens_1.ALL_TOKENS; const VisitorKeys_1 = require("./VisitorKeys"); exports.visitorKeys = VisitorKeys_1.visitorKeys; const visitor = new ASTVisitor_1.ASTVisitor(); const ast = (source, type = 'Program') => { const { value, tokens, parseErrors, lexErrors } = Parser_1.parse(source, type); const props = { tokens, parseErrors, lexErrors }; const tree = visitor.visit(value, props); if (parseErrors.length) { const { message, location } = parseErrors[0]; const column = location.start.column; const line = location.start.line; const err = new SyntaxError(`${message} at ${line}:${column}`); err.lineNumber = line; err.column = column; throw err; } return tree; }; exports.ast = ast;