| 'use strict'; | 
|   | 
| const utils = require('./utils'); | 
|   | 
| module.exports = (ast, options = {}) => { | 
|   let stringify = (node, parent = {}) => { | 
|     let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); | 
|     let invalidNode = node.invalid === true && options.escapeInvalid === true; | 
|     let output = ''; | 
|   | 
|     if (node.value) { | 
|       if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { | 
|         return '\\' + node.value; | 
|       } | 
|       return node.value; | 
|     } | 
|   | 
|     if (node.value) { | 
|       return node.value; | 
|     } | 
|   | 
|     if (node.nodes) { | 
|       for (let child of node.nodes) { | 
|         output += stringify(child); | 
|       } | 
|     } | 
|     return output; | 
|   }; | 
|   | 
|   return stringify(ast); | 
| }; |