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: new Node({ type: 'string', content: 'foobar' }), }), ], subtree: [ new Node({ type: 'functionCall', functionName: 'p', args: [ new Node({ attributeName: 'class', attributeValue: new Node({ type: 'string', content: 'bazquux' }), }), ], subtree: [], }), ], }), ]) })