UNPKG

810 BJavaScriptView Raw
1/**
2 * Module dependencies
3 */
4
5var jade = require('jade');
6var inherits = require('util').inherits;
7var Lexer = require('./lexer');
8
9module.exports = Parser;
10
11function Parser(str, filename, options) {
12 jade.Parser.apply(this, arguments);
13 this.lexer = new Lexer(this.input, filename);
14}
15inherits(Parser, jade.Parser);
16
17Parser.prototype.parseExpr = function() {
18 if (this.peek().type !== 'yield') return jade.Parser.prototype.parseExpr.apply(this, arguments);
19 var tok = this.expect('yield');
20 return {
21 type: 'Yield',
22 val: tok.val,
23 line: tok.line,
24 args: tok.args
25 };
26};
27
28Parser.prototype.parseBlock = function() {
29 var tok = this.peek();
30 var block = jade.Parser.prototype.parseBlock.apply(this, arguments);
31 delete this.blocks[block.name];
32 block.args = tok.args;
33 return block;
34};