start          = function lexer_script_start(x:string):void {
                    let aa:number    = parse.count,
                        wordx:string = "",
                        wordy:string = "",
                        stack:string = "";
                    brace.push(x);
                    ltoke = x;
                    ltype = "start";
                    // parse-ignore-start
                    if (ltoke === "{" || ltoke === "x{") {
                        if (wordx === "else" || wordx === "do" || wordx === "try" || wordx === "finally" || wordx === "switch") {
                            stack = wordx;
                        } else if (ltoke === "{" && (data.token[aa] === "x}" || data.token[aa] === "}") && "if|else|for|while|function|class|switch|catch|finally".indexOf(data.stack[aa]) > -1) {
                            // ES6 block
                            stack = "block";
                        } else {
                            stack = "object";
                        }
                        if (stack !== "object") {
                            if (stack === "function") {
                                references.push(funreferences);
                                funreferences = [];
                            } else {
                                references.push([]);
                            }
                        }
                    } else if (ltoke === "[") {
                        if ((/\s/).test(c[a - 1]) === true && (data.types[aa] === "word" || data.types[aa] === "reference") && wordx !== "return" && options.language !== "twig") {
                            stack = "notation";
                        } else {
                            stack = "array";
                        }
                    } else if (ltoke === "(" || ltoke === "x(") {
                        if (wordx === "function" || data.token[aa - 1] === "function") {
                            stack = "arguments";
                        } else {
                            stack = "paren";
                        }
                    }
                    /* parse-ignore-end */
                    recordPush(stack);
                };