| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- function last(array) {
 
-   return array[array.length - 1]
 
- }
 
- let brackets = {
 
-   /**
 
-    * Parse string to nodes tree
 
-    */
 
-   parse(str) {
 
-     let current = ['']
 
-     let stack = [current]
 
-     for (let sym of str) {
 
-       if (sym === '(') {
 
-         current = ['']
 
-         last(stack).push(current)
 
-         stack.push(current)
 
-         continue
 
-       }
 
-       if (sym === ')') {
 
-         stack.pop()
 
-         current = last(stack)
 
-         current.push('')
 
-         continue
 
-       }
 
-       current[current.length - 1] += sym
 
-     }
 
-     return stack[0]
 
-   },
 
-   /**
 
-    * Generate output string by nodes tree
 
-    */
 
-   stringify(ast) {
 
-     let result = ''
 
-     for (let i of ast) {
 
-       if (typeof i === 'object') {
 
-         result += `(${brackets.stringify(i)})`
 
-         continue
 
-       }
 
-       result += i
 
-     }
 
-     return result
 
-   }
 
- }
 
- module.exports = brackets
 
 
  |