'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 };