VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/libs/absol-full/dist/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol__src__SCLang__SCGrammar.js
/*** module: node_modules/absol/src/SCLang/SCGrammar.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _DPParseInstance = require("../Pharse/DPParseInstance");

/*********************************
 * EXPRESSION
 */
var operatorOrder = {
  'NOT': 4,
  '!': 4,
  '*': 5,
  '/': 5,
  'MOD': 5,
  '%': 5,
  '+': 6,
  '-': 6,
  '<': 9,
  '>': 9,
  '<=': 9,
  '>=': 9,
  '==': 9,
  '===': 9,
  '!=': 9,
  'AND': 14,
  '&&': 14,
  'OR': 15,
  '||': 15,
  'XOR': 15
};
var elementRegexes = [['string', /("(?:[^"\\]|\\.)*?")|('(?:[^'\\]|\\.)*?')/], ['number', /(\d+([.]\d*)?([eE][+-]?\d+)?|[.]\d+([eE][+-]?\d+)?)/], ['word', /[_a-zA-Z][_a-zA-Z0-9]*/], ['skip', /([\s\r\n]+)|(\/\/[^\n]*)|(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)/], ['tsymbol', /(\.\.\.)|(===)/], ['dsymbol', /\+\+|--|==|!=|<=|>=|\|\||&&/], ['symbol', /[^\s_a-zA-Z0-9]/]];
var rules = [];
rules.push({
  target: 'null',
  elements: ['_null'],
  toAST: function (parsedNode) {
    return {
      type: 'NullLiteral'
    };
  }
});
rules.push({
  target: 'ident',
  elements: ['.word'],
  toAST: function (parsedNode) {
    return {
      type: 'Identifier',
      name: parsedNode.children[0].content
    };
  }
});
rules.push({
  target: 'args_list',
  elements: ['exp'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  },
  toASTChain: function (parsedNode) {
    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode)];
  }
});
rules.push({
  target: 'args_list',
  elements: ['args_list', '_,', 'exp'],
  longestOnly: true,
  ident: 'args_list_rec',
  toASTChain: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat((0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]));
  }
});
rules.push({
  target: 'function_callee',
  elements: ['ident'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'function_callee',
  elements: ['mem_exp'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'function_call',
  elements: ['function_callee', '_(', 'args_list', '_)'],
  toAST: function (parsedNode) {
    return {
      type: 'CallExpression',
      arguments: parsedNode.children[2].rule.toASTChain(parsedNode.children[2]),
      callee: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])
    };
  }
});
rules.push({
  target: 'function_call',
  elements: ['function_callee', '_(', '_)'],
  toAST: function (parsedNode) {
    return {
      type: 'CallExpression',
      arguments: [],
      callee: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])
    };
  }
});
rules.push({
  target: 'new_expression',
  elements: ['_new', 'function_call'],
  toAST: function (parsedNode) {
    var callAst = (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]);
    return {
      type: 'NewExpression',
      arguments: callAst.arguments,
      callee: callAst.callee
    };
  }
});
rules.push({
  target: 'exp',
  elements: ['new_expression'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'exp',
  elements: ['null'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'exp',
  elements: ['ident'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'number',
  elements: ['.number'],
  toAST: function (parsedNode) {
    return {
      type: 'NumericLiteral',
      value: parseFloat(parsedNode.children[0].content)
    };
  }
});
rules.push({
  target: 'string',
  elements: ['.string'],
  toAST: function (parsedNode) {
    var content = parsedNode.children[0].content;
    if (content[0] === "'") content = '"' + content.substring(1, content.length - 1).replace(/["]/g, '\\"') + '"';
    return {
      type: 'StringLiteral',
      value: JSON.parse(content)
    };
  }
});
rules.push({
  target: 'boolean',
  elements: ['_true'],
  toAST: function (parsedNode) {
    return {
      type: 'BooleanLiteral',
      value: true
    };
  }
});
rules.push({
  target: 'boolean',
  elements: ['_false'],
  toAST: function (parsedNode) {
    return {
      type: 'BooleanLiteral',
      value: false
    };
  }
});
rules.push({
  target: 'exp',
  elements: ['number'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'exp',
  elements: ['string'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'exp',
  elements: ['boolean'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
['+', '-', '*', '/', '%', '&&', '||', 'XOR', '==', '===', '!=', '<', '>', '>=', '<='].forEach(function (op) {
  rules.push({
    target: 'bin_op',
    elements: ['_' + op],
    toAST: function (parsedNode) {
      return {
        type: "BinaryOperator",
        content: op
      };
    }
  });
});
rules.push({
  target: 'exp',
  elements: ['exp', 'bin_op', 'exp'],
  // longestOnly: true,//* error when parse return (...)...
  ident: 'bin_op_rec',
  toASTChain: function (parseNode) {
    var res = [];

    if (parseNode.children[0].rule === this) {
      res = res.concat(this.toASTChain(parseNode.children[0]));
    } else {
      res.push((0, _DPParseInstance.parsedNodeToAST)(parseNode.children[0]));
    }

    res.push(parseNode.children[1].children[0]);

    if (parseNode.children[2].rule === this) {
      res = res.concat(this.toASTChain(parseNode.children[2]));
    } else {
      res.push((0, _DPParseInstance.parsedNodeToAST)(parseNode.children[2]));
    }

    return res;
  },
  toAST: function (parsedNode) {
    var chain = this.toASTChain(parsedNode);
    var stack = [];
    var item;
    var newNode;

    while (chain.length > 0) {
      item = chain.shift();

      if (item.content in operatorOrder) {
        while (stack.length >= 3 && operatorOrder[stack[stack.length - 2].content] <= operatorOrder[item.content]) {
          newNode = {
            type: 'BinaryExpression'
          };
          newNode.right = stack.pop();
          newNode.operator = stack.pop();
          newNode.left = stack.pop();
          stack.push(newNode);
        }
      }

      stack.push(item);
    }

    while (stack.length >= 3) {
      newNode = {
        type: 'BinaryExpression'
      };
      newNode.right = stack.pop();
      newNode.operator = stack.pop();
      newNode.left = stack.pop();
      stack.push(newNode);
    }

    return stack.pop();
  }
});
rules.push({
  target: 'condition_exp',
  elements: ['exp', '_?', 'exp', '_:', 'exp'],
  toAST: function (parsedNode) {
    return {
      type: 'ConditionalExpression',
      test: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      consequent: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]),
      alternate: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])
    };
  }
});
rules.push({
  target: 'sequence_exp',
  elements: ['exp', '_,', 'exp'],
  toAST: function (parsedNode) {
    return {
      type: 'SequenceExpression',
      expressions: [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]), (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]
    };
  }
});
rules.push({
  target: 'sequence_exp',
  elements: ['sequence_exp', '_,', 'exp'],
  toAST: function (parsedNode) {
    var ast = (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
    ast.expressions.push((0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]));
    return ast;
  }
});
rules.push({
  target: 'exp',
  elements: ['condition_exp'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'exp',
  elements: ['function_call'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'bracket_group',
  elements: ['_(', 'exp', '_)'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]);
  }
});
rules.push({
  target: 'exp',
  elements: ['bracket_group'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
}); // rules.push({
//     target: 'exp',
//     elements: ['_(', 'exp', '_)'],
//     toAST: function (parsedNode) {
//         return parsedNodeToAST(parsedNode.children[1]);
//     }
// });

['+', '-', '!'].forEach(function (op) {
  ['number', 'bracket_group', 'ident', 'function_call', 'mem_exp', 'unary_exp'].forEach(function (arg) {
    rules.push({
      target: 'unary_exp',
      elements: ['_' + op, arg],
      toAST: function (parsedNode) {
        return {
          type: 'UnaryExpression',
          argument: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
          operator: {
            type: 'UnaryOperator',
            content: op
          }
        };
      }
    });
  });
});
rules.push({
  target: 'exp',
  elements: ['unary_exp'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['ident', '_.', 'ident'],
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: false,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['ident', '_[', 'exp', '_]'],
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: true,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['new_expression', '_.', 'ident'],
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: false,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['new_expression', '_[', 'exp', '_]'],
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: true,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['mem_exp', '_.', 'ident'],
  longestOnly: true,
  ident: 'mem_exp_ident_rev',
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: false,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['mem_exp', '_[', 'exp', '_]'],
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: true,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['bracket_group', '_.', 'ident'],
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: false,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'mem_exp',
  elements: ['bracket_group', '_[', 'exp', '_]'],
  toAST: function (parsedNode) {
    return {
      type: "MemberExpression",
      computed: true,
      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'exp',
  elements: ['mem_exp'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'object_exp',
  elements: ['_{', '_}'],
  toAST: function (parsedNode) {
    return {
      type: 'ObjectExpression',
      properties: []
    };
  }
});
rules.push({
  target: 'object_exp',
  elements: ['_{', 'object_property_list', '_}'],
  toAST: function (parsedNode) {
    return {
      type: 'ObjectExpression',
      properties: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1])
    };
  }
});
rules.push({
  target: 'exp',
  elements: ['object_exp'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'object_property',
  elements: ['ident', '_:', 'exp'],
  toAST: function (parsedNode) {
    return {
      type: 'ObjectProperty',
      key: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      value: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'object_property',
  elements: ['string', '_:', 'exp'],
  toAST: function (parsedNode) {
    return {
      type: 'ObjectProperty',
      key: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      value: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'object_property_list',
  elements: ['object_property'],
  toASTChain: function (parsedNode) {
    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];
  }
});
rules.push({
  target: 'object_property_list',
  elements: ['object_property_list', '_,', 'object_property'],
  longestOnly: true,
  ident: 'object_property_list_rec',
  toASTChain: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'exp',
  elements: ['array_exp'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'array_exp',
  elements: ['_[', '_]'],
  toAST: function (parsedNode) {
    return {
      type: "ArrayExpression",
      elements: []
    };
  }
});
rules.push({
  target: 'array_exp',
  elements: ['_[', 'array_item_list', '_]'],
  toAST: function (parsedNode) {
    return {
      type: "ArrayExpression",
      elements: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1])
    };
  }
});
rules.push({
  target: 'array_item_list',
  elements: ['exp'],
  toASTChain: function (parsedNode) {
    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];
  }
});
rules.push({
  target: 'array_item_list',
  elements: ['array_item_list', '_,', 'exp'],
  longestOnly: true,
  ident: 'array_item_list_rec',
  toASTChain: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]);
  }
});
/**********************************************************************************************************************/

/**************FOR QUICK PARSING***********************/

rules.push({
  target: 'exp',
  elements: ['.constance'],
  toAST: function (parsedNode) {
    return parsedNode.children[0];
  },
  toASTChain: function (parsedNode) {
    return [parsedNode.children[0]];
  }
});
/***********************************************************************************************************************/

rules.push({
  target: 'generic_type',
  elements: ['ident'],
  toAST: function (parsedNode) {
    return {
      type: 'GenericType',
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])
    };
  }
});
rules.push({
  target: 'linked_type',
  elements: ['_linktype', 'exp'],
  toAST: function (parsedNode) {
    return {
      type: 'LinkedType',
      address: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])
    };
  }
});
rules.push({
  target: 'var_type',
  elements: ['generic_type'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'var_type',
  elements: ['linked_type'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
/*
rules.push({
    target: 'var_type',
    elements: ['ident', '<', 'var_type', '>']
});

rules.push({
    target: 'var_type',
    elements: ['ident', '<', '.string', '>']
});
*/

rules.push({
  target: 'type_annotation',
  elements: ['_:', 'var_type'],
  toAST: function (parsedNode) {
    return {
      type: 'TypeAnnotation',
      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])
    };
  }
});
/**********************************************************************************************************************/

/*
@decrepted ast
rules.push({
    target: 'variable_declaration',
    elements: ['_var', 'ident', 'type_annotation', '_;'],
    toAST: function (parsedNode) {
        return {
            type: 'VariableDeclaration',
            id: parsedNodeToAST(parsedNode.children[1]),
            typeAnnotation: parsedNodeToAST(parsedNode.children[2])
        }
    }
});

rules.push({
    target: 'variable_declaration',
    elements: ['_var', 'ident', '_;'],
    toAST: function (parsedNode) {
        return {
            type: 'VariableDeclaration',
            id: parsedNodeToAST(parsedNode.children[1]),
        }
    }
});

rules.push({
    target: 'variable_declaration',
    elements: ['_var', 'ident', '_=', 'exp', '_;'],
    toAST: function (parsedNode) {
        return {
            type: 'VariableDeclaration',
            id: parsedNodeToAST(parsedNode.children[1]),
            init: parsedNodeToAST(parsedNode.children[3])
        }
    }
});

rules.push({
    target: 'variable_declaration',
    elements: ['_var', 'ident', 'type_annotation', '_=', 'exp', '_;'],
    toAST: function (parsedNode) {
        return {
            type: 'VariableDeclaration',
            id: parsedNodeToAST(parsedNode.children[1]),
            typeAnnotation: parsedNodeToAST(parsedNode.children[2]),
            init: parsedNodeToAST(parsedNode.children[4]),
            kind: 'var'
        }

    }
});
*/

rules.push({
  target: 'variable_declarator',
  elements: ['ident', '_=', 'exp'],
  toAST: function (parsedNode) {
    return {
      type: 'VariableDeclarator',
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      init: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'variable_declarator',
  elements: ['ident', 'type_annotation', '_=', 'exp'],
  toAST: function (parsedNode) {
    return {
      type: 'VariableDeclarator',
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      init: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3])
    };
  }
});
rules.push({
  target: 'variable_declarator',
  elements: ['ident'],
  toAST: function (parsedNode) {
    return {
      type: 'VariableDeclarator',
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      init: null
    };
  }
});
rules.push({
  target: 'variable_declarator',
  elements: ['ident', 'type_annotation'],
  toAST: function (parsedNode) {
    return {
      type: 'VariableDeclarator',
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      init: null
    };
  }
});
rules.push({
  target: 'variable_declarator_sequence',
  elements: ['variable_declarator'],
  toASTChain: function (parsedNode) {
    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];
  }
});
rules.push({
  target: 'variable_declarator_sequence',
  elements: ['variable_declarator_sequence', '_,', 'variable_declarator'],
  toASTChain: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]);
  }
});
rules.push({
  target: 'variable_declaration',
  elements: ['_var', 'variable_declarator_sequence', '_;'],
  toAST: function (parsedNode) {
    return {
      type: 'VariableDeclaration',
      declarations: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1]),
      kind: 'var'
    };
  }
}); //todo

rules.push({
  target: 'expression_statement',
  elements: ['function_call', '_;'],
  toAST: function (parsedNode) {
    return {
      type: 'ExpressionStatement',
      expression: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])
    };
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'assign_expression',
  elements: ['ident', '_=', 'exp'],
  toAST: function (parseNode) {
    return {
      type: 'AssignmentExpression',
      left: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[0]),
      right: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[2])
    };
  }
});
rules.push({
  target: 'assign_expression',
  elements: ['mem_exp', '_=', 'exp'],
  toAST: function (parseNode) {
    return {
      type: 'AssignmentExpression',
      left: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[0]),
      right: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[2])
    };
  }
});
rules.push({
  target: 'expression_statement',
  elements: ['assign_expression', '_;'],
  toAST: function (parsedNode) {
    return {
      type: 'ExpressionStatement',
      expression: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])
    };
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'if_statement_1',
  elements: ['_if', '_(', 'exp', '_)', 'statement'],
  toAST: function (parsedNode) {
    return {
      type: 'IfStatement',
      test: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]),
      consequent: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])
    };
  }
});
rules.push({
  target: 'if_statement_2',
  elements: ['if_statement_1', '_else', 'statement'],
  toAST: function (parsedNode) {
    var ast = (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
    ast.alternate = (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]);
    return ast;
  }
});
rules.push({
  target: 'statement',
  elements: ['if_statement_1'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement',
  elements: ['if_statement_2'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'for_count_statement',
  elements: ['_for', 'ident', '_from', 'exp', '_to', 'exp', 'block_statement'],
  toAST: function (parsedNode) {
    return {
      type: 'ForCountStatement',
      for: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      from: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),
      to: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[5]),
      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[6])
    };
  }
});
rules.push({
  target: 'for_of_statement',
  elements: ['_for', 'ident', '_of', 'exp', 'block_statement'],
  toAST: function (parsedNode) {
    return {
      type: 'ForOfStatement',
      for: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      of: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),
      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])
    };
  }
});
rules.push({
  target: 'for_in_statement',
  elements: ['_for', 'ident', '_in', 'exp', 'block_statement'],
  toAST: function (parsedNode) {
    return {
      type: 'ForInStatement',
      for: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      in: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),
      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])
    };
  }
});
rules.push({
  target: 'iterable_range',
  elements: ['iterable_range_limit', '_...', 'iterable_range_limit']
});
rules.push({
  target: 'iterable_range_limit',
  elements: ['.number']
});
rules.push({
  target: 'iterable_range_limit',
  elements: ['ident']
});
/**************************************************************************************/

rules.push({
  target: 'for_statement',
  elements: ['_for', 'bracket_group', 'statement']
});
/**********************************************************************************************************************/

rules.push({
  target: 'while_statement',
  elements: ['_while', 'bracket_group', 'statement'],
  toAST: function (parsedNode) {
    return {
      type: 'WhileStatement',
      test: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])
    };
  }
});
rules.push({
  target: 'statement',
  elements: ['while_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'do_while_statement',
  elements: ['_do', 'statement', '_while', 'bracket_group', '_;'],
  toAST: function (parsedNode) {
    return {
      type: 'DoWhileStatement',
      test: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),
      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])
    };
  }
});
rules.push({
  target: 'statement',
  elements: ['do_while_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'break_statement',
  elements: ['_break', '_;'],
  toAST: function (parsedNode) {
    return {
      type: 'BreakStatement'
    };
  }
});
rules.push({
  target: 'statement',
  elements: ['break_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'block_statement',
  elements: ['_{', '_}'],
  toAST: function (parsedNode) {
    return {
      type: 'BlockStatement',
      body: []
    };
  }
});
rules.push({
  target: 'block_statement',
  elements: ['_{', 'statement_arr', '_}'],
  toAST: function (parsedNode) {
    return {
      type: 'BlockStatement',
      body: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1])
    };
  }
});
rules.push({
  target: 'statement',
  elements: ['variable_declaration'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement',
  elements: ['block_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement',
  elements: ['expression_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement',
  elements: ['for_count_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement',
  elements: ['for_in_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement',
  elements: ['for_of_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement',
  elements: ['assign_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'statement_arr',
  elements: ['statement'],
  toASTChain: function (parsedNode) {
    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];
  }
});
rules.push({
  target: 'statement_arr',
  elements: ['statement_arr', 'statement'],
  longestOnly: true,
  toASTChain: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'function_arguments_declaration',
  elements: ['_(', '_)'],
  toASTChain: function (parsedNode) {
    return [];
  }
});
rules.push({
  target: 'function_arguments_declaration',
  elements: ['_(', 'argument_declaration_list', '_)'],
  toASTChain: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1]);
  }
});
rules.push({
  target: 'argument_declaration',
  elements: ['ident', 'type_annotation'],
  toAST: function (parsedNode) {
    return {
      type: "ArgumentDeclaration",
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),
      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])
    };
  }
});
rules.push({
  target: 'argument_declaration',
  elements: ['ident'],
  toAST: function (parsedNode) {
    return {
      type: "ArgumentDeclaration",
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])
    };
  }
});
rules.push({
  target: 'argument_declaration_list',
  elements: ['argument_declaration'],
  toASTChain: function (parsedNode) {
    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];
  }
});
rules.push({
  target: 'argument_declaration_list',
  elements: ['argument_declaration_list', '_,', 'argument_declaration'],
  toASTChain: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'return_statement',
  elements: ['_return', 'exp', '_;'],
  toAST: function (parsedNode) {
    return {
      type: "ReturnStatement",
      argument: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])
    };
  }
});
rules.push({
  target: 'return_statement',
  elements: ['_return', '_;'],
  toAST: function (parsedNode) {
    return {
      type: "ReturnStatement"
    };
  }
});
rules.push({
  target: 'statement',
  elements: ['return_statement'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
/**********************************************************************************************************************/

rules.push({
  target: 'function_declare',
  elements: ['_function', 'ident', 'function_arguments_declaration', 'type_annotation', 'block_statement'],
  toAST: function (parsedNode) {
    return {
      type: 'FunctionDeclaration',
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      params: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[2]),
      returnType: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),
      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])
    };
  }
});
rules.push({
  target: 'function_declare',
  elements: ['_function', 'ident', 'function_arguments_declaration', 'block_statement'],
  toAST: function (parsedNode) {
    return {
      type: 'FunctionDeclaration',
      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),
      params: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[2]),
      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3])
    };
  }
});
rules.push({
  target: 'statement',
  elements: ['function_declare'],
  toAST: function (parsedNode) {
    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);
  }
});
rules.push({
  target: 'program',
  elements: ['statement_arr'],
  toAST: function (parsedNode) {
    return {
      type: "Program",
      body: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0])
    };
  }
});
var _default = {
  elementRegexes: elementRegexes,
  rules: rules,
  operatorOrder: operatorOrder
};
exports.default = _default;

VaKeR 2022