summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-01-09 12:45:37 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2015-01-09 12:45:37 -0800
commit1446dc2c02a73abeeafbb431fea2cabda444a1cb (patch)
tree2ddca31c61bcc506153b0bf8599a35d53c6e8d10
parent4b52529eb964fd1e949ae60e2da70ac3a0db6a9c (diff)
Removed makeBlock. Use new Node directly. Initialize more fields.
-rw-r--r--js/lib/blocks.js18
-rw-r--r--js/lib/node.js8
2 files changed, 9 insertions, 17 deletions
diff --git a/js/lib/blocks.js b/js/lib/blocks.js
index 8f4776c..aa09b23 100644
--- a/js/lib/blocks.js
+++ b/js/lib/blocks.js
@@ -56,18 +56,6 @@ var reHrule = /^(?:(?:\* *){3,}|(?:_ *){3,}|(?:- *){3,}) *$/;
// These are methods of a DocParser object, defined below.
-var makeBlock = function(tag, start_line, start_column) {
- "use strict";
- var b = new Node(tag);
- b.pos.start = [start_line, start_column];
- b.pos.end = []; // assigned in finalization step
- b.open = true;
- b.last_line_blank = false;
- b.string_content = "";
- b.strings = [];
- return b;
-};
-
// Returns true if parent block can contain child block.
var canContain = function(parent_type, child_type) {
"use strict";
@@ -148,7 +136,7 @@ var addChild = function(tag, line_number, offset) {
}
var column_number = offset + 1; // offset 0 = column 1
- var newBlock = makeBlock(tag, line_number, column_number);
+ var newBlock = new Node(tag, { start: [line_number, column_number], end: [] });
this.tip.appendChild(newBlock);
this.tip = newBlock;
return newBlock;
@@ -645,7 +633,7 @@ var processInlines = function(block) {
// The main parsing function. Returns a parsed document AST.
var parse = function(input) {
"use strict";
- this.doc = makeBlock('Document', 1, 1);
+ this.doc = new Node('Document', { start: [1, 1], end: [] });
this.tip = this.doc;
this.refmap = {};
var lines = input.replace(/\n$/, '').split(/\r\n|\n|\r/);
@@ -665,7 +653,7 @@ var parse = function(input) {
function DocParser(){
"use strict";
return {
- doc: makeBlock('Document', 1, 1),
+ doc: new Node('Document', { start: [1, 1], end: [] }),
tip: this.doc,
refmap: {},
inlineParser: new InlineParser(),
diff --git a/js/lib/node.js b/js/lib/node.js
index f88dff5..befa93f 100644
--- a/js/lib/node.js
+++ b/js/lib/node.js
@@ -60,14 +60,18 @@ NodeWalker.prototype.next = function(){
return {entering: entering, node: cur};
};
-function Node(nodeType) {
+function Node(nodeType, pos) {
this.t = nodeType;
this.parent = null;
this.firstChild = null;
this.lastChild = null;
this.prev = null;
this.next = null;
- this.pos = {};
+ this.pos = pos || {};
+ this.last_line_blank = false;
+ this.open = true;
+ this.strings = [];
+ this.string_content = "";
}
Node.prototype.isContainer = function() {