12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- const test = require('tape')
-
- const Lexer = require('../src/lexer')
- const Node = require('../src/node')
- const Parser = require('../src/parser')
- const tt = require('../src/tokenTypes')
-
- test('parses token stream into a tree', t => {
- t.plan(1)
- const lexer = new Lexer()
- let tokenStream = lexer.scan(`
- (div :class "foobar"
- (p :class "bazquux"))
- `)
- let parser = new Parser(tokenStream)
- let tree = parser.parse()
-
- t.deepEqual(
- tree,
- [
- new Node({
- type: 'functionCall',
- functionName: 'div',
- args: [
- new Node({
- attributeName: 'class',
- attributeValue: 'foobar',
- })
- ],
- subtree: [
- new Node({
- type: 'functionCall',
- functionName: 'p',
- args: [
- new Node({
- attributeName: 'class',
- attributeValue: 'bazquux',
- })
- ],
- subtree: [],
- })
- ]
- })
- ]
- )
- })
|