Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
stdin.on('end', () => {
let magicString = new MagicString(input);
let ast = parse(input);
console.log(ast.context.tokens);
let patcher = makePatcher(ast, ast.context, magicString);
patcher.patch();
console.log(magicString.toString());
});
const tokens = useCS2 ? getCoffee2Tokens(source) : getCoffee1Tokens(source);
return {
code: formatCoffeeScriptLexerTokens(tokens, context)
};
} else if (stageName === 'coffeescript-parser') {
const nodes = useCS2 ? getCoffee2Nodes(source) : getCoffee1Nodes(source);
return {
code: formatCoffeeScriptAst(nodes, context)
};
} else if (stageName === 'coffee-lex') {
return {
code: formatCoffeeLexTokens(lex(source, { useCS2 }), context)
};
} else if (stageName === 'decaffeinate-parser') {
return {
code: formatDecaffeinateParserAst(decaffeinateParse(source, { useCS2 }), context)
};
} else {
throw new Error(`Unrecognized stage name: ${stageName}`);
}
}
export default function parse(source: string): Node {
let ast = decaffeinateParse(source);
traverse(ast, attachScope);
return ast;
}
static create(source: string, useCS2: boolean): DecaffeinateContext {
const program = decaffeinateParse(source, { useCS2 });
return new DecaffeinateContext(
program,
source,
program.context.sourceTokens,
program.context.ast,
program.context.linesAndColumns,
computeParentMap(program),
computeScopeMap(program)
);
}