README
@aligov/gov-venom-parser
venom DSL底层parser,目前最快的AST parser解析实现。
DEMO
const code = `
<div :class={{active : isActive, current: isCurrent}}>1</div>
<div @click="onClick"></div>
<div onClick="onClick"></div>
<div onClick={this.store.onClick}></div>
<div @click="onClick(item)"></div>
<div onClick="onClick(item)"></div>
<div @click.enter="onClick"></div>
<input :model={value}/>
<input value={this.state.value} onChange={(val) => this.setState({value: val})}/>
`;
const {parse} = require('@ali/venom-parser');
const ast = parse(code);
console.log('ast[0]:', ast[0]); // AST
ast[0].children.forEach(item => {
console.log(item);
});
printAttrs(ast[0]);
function printAttrs(ast) {
if(ast.attrs && ast.attrs.length) {
ast.attrs.forEach(attr => {
console.log('attr:', attr);
});
}
if(ast.children && ast.children.length) {
ast.children.forEach(child => {
printAttrs(child);
});
}
}