firescript
Version:
Firescript language
195 lines (185 loc) • 7.96 kB
JavaScript
const FirescriptParser = require('./FirescriptParser')
const JavascriptTranspiler = require('./JavascriptTranspiler')
require('./fs-parser/nodes/ArrayExpression.js')
require('./fs-parser/nodes/ArrayPattern.js')
require('./fs-parser/nodes/ArrowFunctionExpression.js')
require('./fs-parser/nodes/AssignmentExpression.js')
require('./fs-parser/nodes/AssignmentPattern.js')
require('./fs-parser/nodes/AwaitExpression.js')
require('./fs-parser/nodes/BinaryExpression.js')
require('./fs-parser/nodes/BlockStatement.js')
require('./fs-parser/nodes/BreakStatement.js')
require('./fs-parser/nodes/CallExpression.js')
require('./fs-parser/nodes/CatchClause.js')
require('./fs-parser/nodes/ClassBody.js')
require('./fs-parser/nodes/ClassDeclaration.js')
require('./fs-parser/nodes/ClassExpression.js')
require('./fs-parser/nodes/Comment.js')
require('./fs-parser/nodes/ConditionalExpression.js')
require('./fs-parser/nodes/ContinueStatement.js')
require('./fs-parser/nodes/DebuggerStatement.js')
require('./fs-parser/nodes/DoWhileStatement.js')
require('./fs-parser/nodes/EmptyStatement.js')
require('./fs-parser/nodes/ExportAllDeclaration.js')
require('./fs-parser/nodes/ExportDefaultDeclaration.js')
require('./fs-parser/nodes/ExportNamedDeclaration.js')
require('./fs-parser/nodes/ExportSpecifier.js')
require('./fs-parser/nodes/ExpressionStatement.js')
require('./fs-parser/nodes/FirescriptGrouping.js')
require('./fs-parser/nodes/FirescriptLogStatement.js')
require('./fs-parser/nodes/FirescriptSyntaxError.js')
require('./fs-parser/nodes/FirescriptTyping.js')
require('./fs-parser/nodes/ForInStatement.js')
require('./fs-parser/nodes/ForOfStatement.js')
require('./fs-parser/nodes/ForStatement.js')
require('./fs-parser/nodes/FunctionDeclaration.js')
require('./fs-parser/nodes/FunctionExpression.js')
require('./fs-parser/nodes/Identifier.js')
require('./fs-parser/nodes/IfStatement.js')
require('./fs-parser/nodes/ImportDeclaration.js')
require('./fs-parser/nodes/ImportDefaultSpecifier.js')
require('./fs-parser/nodes/ImportNamespaceSpecifier.js')
require('./fs-parser/nodes/ImportSpecifier.js')
require('./fs-parser/nodes/Literal.js')
require('./fs-parser/nodes/LogicalExpression.js')
require('./fs-parser/nodes/MemberExpression.js')
require('./fs-parser/nodes/MetaProperty.js')
require('./fs-parser/nodes/MethodDefinition.js')
require('./fs-parser/nodes/NewExpression.js')
require('./fs-parser/nodes/Node.js')
require('./fs-parser/nodes/NullNode.js')
require('./fs-parser/nodes/ObjectExpression.js')
require('./fs-parser/nodes/ObjectPattern.js')
require('./fs-parser/nodes/Program.js')
require('./fs-parser/nodes/Property.js')
require('./fs-parser/nodes/RestElement.js')
require('./fs-parser/nodes/ReturnStatement.js')
require('./fs-parser/nodes/SequenceExpression.js')
require('./fs-parser/nodes/SpreadElement.js')
require('./fs-parser/nodes/Super.js')
require('./fs-parser/nodes/SwitchCase.js')
require('./fs-parser/nodes/SwitchStatement.js')
require('./fs-parser/nodes/TaggedTemplateExpression.js')
require('./fs-parser/nodes/TemplateElement.js')
require('./fs-parser/nodes/TemplateLiteral.js')
require('./fs-parser/nodes/ThisExpression.js')
require('./fs-parser/nodes/ThrowStatement.js')
require('./fs-parser/nodes/TryStatement.js')
require('./fs-parser/nodes/UnaryExpression.js')
require('./fs-parser/nodes/UpdateExpression.js')
require('./fs-parser/nodes/VariableDeclaration.js')
require('./fs-parser/nodes/VariableDeclarator.js')
require('./fs-parser/nodes/WhileStatement.js')
require('./fs-parser/nodes/YieldExpression.js')
require('./fs-parser/nodeDefinition.js')
require('./fs-parser/nodeMapping.js')
require('./js-transformations/classDeclaration.js')
require('./js-transformations/exportAllDeclaration.js')
require('./js-transformations/exportDeclaration.js')
require('./js-transformations/functionDeclaration.js')
require('./js-transformations/functionExpression.js')
require('./js-transformations/functionParamTyping.js')
require('./js-transformations/importDeclaration.js')
require('./js-transformations/logStatement.js')
require('./js-transformations/programm.js')
require('./js-transformations/regexp.js')
require('./js-transformations/templateLiteral.js')
require('./js-transformations/variableTyping.js')
require('./js-elements/ArrayExpression.js')
require('./js-elements/ArrayPattern.js')
require('./js-elements/ArrowFunctionExpression.js')
require('./js-elements/AssignmentExpression.js')
require('./js-elements/AssignmentPattern.js')
require('./js-elements/AwaitExpression.js')
require('./js-elements/BinaryExpression.js')
require('./js-elements/Block.js')
require('./js-elements/BlockStatement.js')
require('./js-elements/BreakStatement.js')
require('./js-elements/CallExpression.js')
require('./js-elements/CatchClause.js')
require('./js-elements/ClassBody.js')
require('./js-elements/ClassDeclaration.js')
require('./js-elements/ClassExpression.js')
require('./js-elements/Comment.js')
require('./js-elements/ConditionalExpression.js')
require('./js-elements/ContinueStatement.js')
require('./js-elements/DebuggerStatement.js')
require('./js-elements/DoWhileStatement.js')
require('./js-elements/EmptyStatement.js')
require('./js-elements/ExportAllDeclaration.js')
require('./js-elements/ExportDefaultDeclaration.js')
require('./js-elements/ExportNamedDeclaration.js')
require('./js-elements/ExportSpecifier.js')
require('./js-elements/ExpressionStatement.js')
require('./js-elements/ForInStatement.js')
require('./js-elements/ForOfStatement.js')
require('./js-elements/ForStatement.js')
require('./js-elements/FunctionDeclaration.js')
require('./js-elements/FunctionExpression.js')
require('./js-elements/Identifier.js')
require('./js-elements/IfStatement.js')
require('./js-elements/ImportDeclaration.js')
require('./js-elements/ImportDefaultSpecifier.js')
require('./js-elements/ImportNamespaceSpecifier.js')
require('./js-elements/ImportSpecifier.js')
require('./js-elements/JSElement.js')
require('./js-elements/LabeledStatement.js')
require('./js-elements/Line.js')
require('./js-elements/Literal.js')
require('./js-elements/LogicalExpression.js')
require('./js-elements/MemberExpression.js')
require('./js-elements/MetaProperty.js')
require('./js-elements/MethodDefinition.js')
require('./js-elements/NewExpression.js')
require('./js-elements/ObjectExpression.js')
require('./js-elements/ObjectPattern.js')
require('./js-elements/Program.js')
require('./js-elements/Property.js')
require('./js-elements/RestElement.js')
require('./js-elements/ReturnStatement.js')
require('./js-elements/SequenceExpression.js')
require('./js-elements/SpreadElement.js')
require('./js-elements/Super.js')
require('./js-elements/SwitchCase.js')
require('./js-elements/SwitchStatement.js')
require('./js-elements/TaggedTemplateExpression.js')
require('./js-elements/TemplateElement.js')
require('./js-elements/TemplateLiteral.js')
require('./js-elements/ThisExpression.js')
require('./js-elements/ThrowStatement.js')
require('./js-elements/TryStatement.js')
require('./js-elements/UnaryExpression.js')
require('./js-elements/UpdateExpression.js')
require('./js-elements/VariableDeclaration.js')
require('./js-elements/VariableDeclarator.js')
require('./js-elements/WhileStatement.js')
require('./js-elements/YieldExpression.js')
module.exports = {
FirescriptParser,
parse (input, opts) {
opts = opts || {}
const parser = new FirescriptParser(opts)
return parser.parse(input)
},
transpile (input, opts) {
opts = opts || {}
let ast
if (typeof input === 'string') {
const parser = new FirescriptParser(opts)
ast = parser.parse(input)
} else {
ast = input
}
opts.features = {
esModules: false,
esDefaultParams: false,
esClasses: true,
esTemplates: true,
extendRegExp: true,
dissableRuntime: false,
fireRTModuleName: 'firescript-runtime'
}
const transpiler = new JavascriptTranspiler(opts)
return transpiler.transpile(ast)
}
}