| 12345678910111213141516171819202122232425262728 | 'use strict';class Node {  constructor(node) {    this.type = node.type;    if (node.value) this.value = node.value;    if (node.match) this.match = node.match;    this.newline = node.newline || '';  }  get protected() {    return Boolean(this.match) && this.match[1] === '!';  }}class Block extends Node {  constructor(node) {    super(node);    this.nodes = node.nodes || [];  }  push(node) {    this.nodes.push(node);  }  get protected() {    return this.nodes.length > 0 && this.nodes[0].protected === true;  }}module.exports = { Node, Block };
 |