3
if (typeof window.window != "undefined" && window.document) {
9
var msgs = Array.prototype.slice.call(arguments, 0);
10
postMessage({type: "log", data: msgs});
13
var msgs = Array.prototype.slice.call(arguments, 0);
14
postMessage({type: "log", data: msgs});
17
window.window = window;
20
window.normalizeModule = function(parentId, moduleName) {
21
// normalize plugin requires
22
if (moduleName.indexOf("!") !== -1) {
23
var chunks = moduleName.split("!");
24
return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
26
// normalize relative requires
27
if (moduleName.charAt(0) == ".") {
28
var base = parentId.split("/").slice(0, -1).join("/");
29
moduleName = base + "/" + moduleName;
31
while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
32
var previous = moduleName;
33
moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
40
window.require = function(parentId, id) {
42
throw new Error("worker.js require() accepts only (parentId, id) as arguments");
44
id = normalizeModule(parentId, id);
46
var module = require.modules[id];
48
if (!module.initialized) {
49
module.initialized = true;
50
module.exports = module.factory().exports;
52
return module.exports;
55
var chunks = id.split("/");
56
chunks[0] = require.tlns[chunks[0]] || chunks[0];
57
var path = chunks.join("/") + ".js";
61
return require(parentId, id);
67
window.define = function(id, deps, factory) {
68
if (arguments.length == 2) {
70
if (typeof id != "string") {
74
} else if (arguments.length == 1) {
79
if (id.indexOf("text!") === 0)
82
var req = function(deps, factory) {
83
return require(id, deps, factory);
86
require.modules[id] = {
91
var returnExports = factory(req, module.exports, module);
93
module.exports = returnExports;
99
window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
100
require.tlns = topLevelNamespaces;
103
window.initSender = function initSender() {
105
var EventEmitter = require(null, "ace/lib/event_emitter").EventEmitter;
106
var oop = require(null, "ace/lib/oop");
108
var Sender = function() {};
112
oop.implement(this, EventEmitter);
114
this.callback = function(data, callbackId) {
122
this.emit = function(name, data) {
130
}).call(Sender.prototype);
136
window.sender = null;
138
window.onmessage = function(e) {
141
if (main[msg.command])
142
main[msg.command].apply(main, msg.args);
144
throw new Error("Unknown command:" + msg.command);
147
initBaseUrls(msg.tlns);
148
require(null, "ace/lib/fixoldbrowsers");
149
sender = initSender();
150
var clazz = require(null, msg.module)[msg.classname];
151
main = new clazz(sender);
153
else if (msg.event && sender) {
154
sender._emit(msg.event, msg.data);
157
})(this);// vim:set ts=4 sts=4 sw=4 st:
159
define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) {
163
require("./es5-shim");
167
define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) {
170
exec: RegExp.prototype.exec,
171
test: RegExp.prototype.test,
172
match: String.prototype.match,
173
replace: String.prototype.replace,
174
split: String.prototype.split
176
compliantExecNpcg = real.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups
177
compliantLastIndexIncrement = function () {
179
real.test.call(x, "");
183
if (compliantLastIndexIncrement && compliantExecNpcg)
185
RegExp.prototype.exec = function (str) {
186
var match = real.exec.apply(this, arguments),
188
if ( typeof(str) == 'string' && match) {
189
if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) {
190
r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", ""));
191
real.replace.call(str.slice(match.index), r2, function () {
192
for (var i = 1; i < arguments.length - 2; i++) {
193
if (arguments[i] === undefined)
194
match[i] = undefined;
198
if (this._xregexp && this._xregexp.captureNames) {
199
for (var i = 1; i < match.length; i++) {
200
name = this._xregexp.captureNames[i - 1];
202
match[name] = match[i];
205
if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))
210
if (!compliantLastIndexIncrement) {
211
RegExp.prototype.test = function (str) {
212
var match = real.exec.call(this, str);
213
if (match && this.global && !match[0].length && (this.lastIndex > match.index))
219
function getNativeFlags (regex) {
220
return (regex.global ? "g" : "") +
221
(regex.ignoreCase ? "i" : "") +
222
(regex.multiline ? "m" : "") +
223
(regex.extended ? "x" : "") + // Proposed for ES4; included in AS3
224
(regex.sticky ? "y" : "");
227
function indexOf (array, item, from) {
228
if (Array.prototype.indexOf) // Use the native array method if available
229
return array.indexOf(item, from);
230
for (var i = from || 0; i < array.length; i++) {
231
if (array[i] === item)
239
define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
243
if (!Function.prototype.bind) {
244
Function.prototype.bind = function bind(that) { // .length is 1
246
if (typeof target != "function") {
247
throw new TypeError("Function.prototype.bind called on incompatible " + target);
249
var args = slice.call(arguments, 1); // for normal call
250
var bound = function () {
252
if (this instanceof bound) {
254
var result = target.apply(
256
args.concat(slice.call(arguments))
258
if (Object(result) === result) {
266
args.concat(slice.call(arguments))
272
if(target.prototype) {
273
Empty.prototype = target.prototype;
274
bound.prototype = new Empty();
275
Empty.prototype = null;
280
var call = Function.prototype.call;
281
var prototypeOfArray = Array.prototype;
282
var prototypeOfObject = Object.prototype;
283
var slice = prototypeOfArray.slice;
284
var _toString = call.bind(prototypeOfObject.toString);
285
var owns = call.bind(prototypeOfObject.hasOwnProperty);
290
var supportsAccessors;
291
if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
292
defineGetter = call.bind(prototypeOfObject.__defineGetter__);
293
defineSetter = call.bind(prototypeOfObject.__defineSetter__);
294
lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
295
lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
297
if ([1,2].splice(0).length != 2) {
298
if(function() { // test IE < 9 to splice bug - see issue #138
299
function makeArray(l) {
300
var a = new Array(l+2);
304
var array = [], lengthBefore;
306
array.splice.apply(array, makeArray(20));
307
array.splice.apply(array, makeArray(26));
309
lengthBefore = array.length; //46
310
array.splice(5, 0, "XXX"); // add one element
312
lengthBefore + 1 == array.length
314
if (lengthBefore + 1 == array.length) {
315
return true;// has right splice implementation without bugs
318
var array_splice = Array.prototype.splice;
319
Array.prototype.splice = function(start, deleteCount) {
320
if (!arguments.length) {
323
return array_splice.apply(this, [
324
start === void 0 ? 0 : start,
325
deleteCount === void 0 ? (this.length - start) : deleteCount
326
].concat(slice.call(arguments, 2)))
330
Array.prototype.splice = function(pos, removeCount){
331
var length = this.length;
335
} else if (pos == void 0) {
337
} else if (pos < 0) {
338
pos = Math.max(length + pos, 0);
341
if (!(pos+removeCount < length))
342
removeCount = length - pos;
344
var removed = this.slice(pos, pos+removeCount);
345
var insert = slice.call(arguments, 2);
346
var add = insert.length;
347
if (pos === length) {
349
this.push.apply(this, insert);
352
var remove = Math.min(removeCount, length - pos);
353
var tailOldPos = pos + remove;
354
var tailNewPos = tailOldPos + add - remove;
355
var tailCount = length - tailOldPos;
356
var lengthAfterRemove = length - remove;
358
if (tailNewPos < tailOldPos) { // case A
359
for (var i = 0; i < tailCount; ++i) {
360
this[tailNewPos+i] = this[tailOldPos+i];
362
} else if (tailNewPos > tailOldPos) { // case B
363
for (i = tailCount; i--; ) {
364
this[tailNewPos+i] = this[tailOldPos+i];
366
} // else, add == remove (nothing to do)
368
if (add && pos === lengthAfterRemove) {
369
this.length = lengthAfterRemove; // truncate array
370
this.push.apply(this, insert);
372
this.length = lengthAfterRemove + add; // reserves space
373
for (i = 0; i < add; ++i) {
374
this[pos+i] = insert[i];
382
if (!Array.isArray) {
383
Array.isArray = function isArray(obj) {
384
return _toString(obj) == "[object Array]";
387
var boxedString = Object("a"),
388
splitString = boxedString[0] != "a" || !(0 in boxedString);
390
if (!Array.prototype.forEach) {
391
Array.prototype.forEach = function forEach(fun /*, thisp*/) {
392
var object = toObject(this),
393
self = splitString && _toString(this) == "[object String]" ?
396
thisp = arguments[1],
398
length = self.length >>> 0;
399
if (_toString(fun) != "[object Function]") {
400
throw new TypeError(); // TODO message
403
while (++i < length) {
405
fun.call(thisp, self[i], i, object);
410
if (!Array.prototype.map) {
411
Array.prototype.map = function map(fun /*, thisp*/) {
412
var object = toObject(this),
413
self = splitString && _toString(this) == "[object String]" ?
416
length = self.length >>> 0,
417
result = Array(length),
418
thisp = arguments[1];
419
if (_toString(fun) != "[object Function]") {
420
throw new TypeError(fun + " is not a function");
423
for (var i = 0; i < length; i++) {
425
result[i] = fun.call(thisp, self[i], i, object);
430
if (!Array.prototype.filter) {
431
Array.prototype.filter = function filter(fun /*, thisp */) {
432
var object = toObject(this),
433
self = splitString && _toString(this) == "[object String]" ?
436
length = self.length >>> 0,
439
thisp = arguments[1];
440
if (_toString(fun) != "[object Function]") {
441
throw new TypeError(fun + " is not a function");
444
for (var i = 0; i < length; i++) {
447
if (fun.call(thisp, value, i, object)) {
455
if (!Array.prototype.every) {
456
Array.prototype.every = function every(fun /*, thisp */) {
457
var object = toObject(this),
458
self = splitString && _toString(this) == "[object String]" ?
461
length = self.length >>> 0,
462
thisp = arguments[1];
463
if (_toString(fun) != "[object Function]") {
464
throw new TypeError(fun + " is not a function");
467
for (var i = 0; i < length; i++) {
468
if (i in self && !fun.call(thisp, self[i], i, object)) {
475
if (!Array.prototype.some) {
476
Array.prototype.some = function some(fun /*, thisp */) {
477
var object = toObject(this),
478
self = splitString && _toString(this) == "[object String]" ?
481
length = self.length >>> 0,
482
thisp = arguments[1];
483
if (_toString(fun) != "[object Function]") {
484
throw new TypeError(fun + " is not a function");
487
for (var i = 0; i < length; i++) {
488
if (i in self && fun.call(thisp, self[i], i, object)) {
495
if (!Array.prototype.reduce) {
496
Array.prototype.reduce = function reduce(fun /*, initial*/) {
497
var object = toObject(this),
498
self = splitString && _toString(this) == "[object String]" ?
501
length = self.length >>> 0;
502
if (_toString(fun) != "[object Function]") {
503
throw new TypeError(fun + " is not a function");
505
if (!length && arguments.length == 1) {
506
throw new TypeError("reduce of empty array with no initial value");
511
if (arguments.length >= 2) {
512
result = arguments[1];
520
throw new TypeError("reduce of empty array with no initial value");
525
for (; i < length; i++) {
527
result = fun.call(void 0, result, self[i], i, object);
534
if (!Array.prototype.reduceRight) {
535
Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
536
var object = toObject(this),
537
self = splitString && _toString(this) == "[object String]" ?
540
length = self.length >>> 0;
541
if (_toString(fun) != "[object Function]") {
542
throw new TypeError(fun + " is not a function");
544
if (!length && arguments.length == 1) {
545
throw new TypeError("reduceRight of empty array with no initial value");
548
var result, i = length - 1;
549
if (arguments.length >= 2) {
550
result = arguments[1];
558
throw new TypeError("reduceRight of empty array with no initial value");
565
result = fun.call(void 0, result, self[i], i, object);
572
if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
573
Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
574
var self = splitString && _toString(this) == "[object String]" ?
577
length = self.length >>> 0;
584
if (arguments.length > 1) {
585
i = toInteger(arguments[1]);
587
i = i >= 0 ? i : Math.max(0, length + i);
588
for (; i < length; i++) {
589
if (i in self && self[i] === sought) {
596
if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
597
Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
598
var self = splitString && _toString(this) == "[object String]" ?
601
length = self.length >>> 0;
607
if (arguments.length > 1) {
608
i = Math.min(i, toInteger(arguments[1]));
610
i = i >= 0 ? i : length - Math.abs(i);
611
for (; i >= 0; i--) {
612
if (i in self && sought === self[i]) {
619
if (!Object.getPrototypeOf) {
620
Object.getPrototypeOf = function getPrototypeOf(object) {
621
return object.__proto__ || (
623
object.constructor.prototype :
628
if (!Object.getOwnPropertyDescriptor) {
629
var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
631
Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
632
if ((typeof object != "object" && typeof object != "function") || object === null)
633
throw new TypeError(ERR_NON_OBJECT + object);
634
if (!owns(object, property))
637
var descriptor, getter, setter;
638
descriptor = { enumerable: true, configurable: true };
639
if (supportsAccessors) {
640
var prototype = object.__proto__;
641
object.__proto__ = prototypeOfObject;
643
var getter = lookupGetter(object, property);
644
var setter = lookupSetter(object, property);
645
object.__proto__ = prototype;
647
if (getter || setter) {
648
if (getter) descriptor.get = getter;
649
if (setter) descriptor.set = setter;
653
descriptor.value = object[property];
657
if (!Object.getOwnPropertyNames) {
658
Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
659
return Object.keys(object);
662
if (!Object.create) {
664
if (Object.prototype.__proto__ === null) {
665
createEmpty = function () {
666
return { "__proto__": null };
669
createEmpty = function () {
674
empty.hasOwnProperty =
675
empty.propertyIsEnumerable =
676
empty.isPrototypeOf =
677
empty.toLocaleString =
680
empty.__proto__ = null;
685
Object.create = function create(prototype, properties) {
687
if (prototype === null) {
688
object = createEmpty();
690
if (typeof prototype != "object")
691
throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
692
var Type = function () {};
693
Type.prototype = prototype;
695
object.__proto__ = prototype;
697
if (properties !== void 0)
698
Object.defineProperties(object, properties);
703
function doesDefinePropertyWork(object) {
705
Object.defineProperty(object, "sentinel", {});
706
return "sentinel" in object;
707
} catch (exception) {
710
if (Object.defineProperty) {
711
var definePropertyWorksOnObject = doesDefinePropertyWork({});
712
var definePropertyWorksOnDom = typeof document == "undefined" ||
713
doesDefinePropertyWork(document.createElement("div"));
714
if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
715
var definePropertyFallback = Object.defineProperty;
719
if (!Object.defineProperty || definePropertyFallback) {
720
var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
721
var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
722
var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
723
"on this javascript engine";
725
Object.defineProperty = function defineProperty(object, property, descriptor) {
726
if ((typeof object != "object" && typeof object != "function") || object === null)
727
throw new TypeError(ERR_NON_OBJECT_TARGET + object);
728
if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
729
throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
730
if (definePropertyFallback) {
732
return definePropertyFallback.call(Object, object, property, descriptor);
733
} catch (exception) {
736
if (owns(descriptor, "value")) {
738
if (supportsAccessors && (lookupGetter(object, property) ||
739
lookupSetter(object, property)))
741
var prototype = object.__proto__;
742
object.__proto__ = prototypeOfObject;
743
delete object[property];
744
object[property] = descriptor.value;
745
object.__proto__ = prototype;
747
object[property] = descriptor.value;
750
if (!supportsAccessors)
751
throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
752
if (owns(descriptor, "get"))
753
defineGetter(object, property, descriptor.get);
754
if (owns(descriptor, "set"))
755
defineSetter(object, property, descriptor.set);
761
if (!Object.defineProperties) {
762
Object.defineProperties = function defineProperties(object, properties) {
763
for (var property in properties) {
764
if (owns(properties, property))
765
Object.defineProperty(object, property, properties[property]);
771
Object.seal = function seal(object) {
775
if (!Object.freeze) {
776
Object.freeze = function freeze(object) {
781
Object.freeze(function () {});
782
} catch (exception) {
783
Object.freeze = (function freeze(freezeObject) {
784
return function freeze(object) {
785
if (typeof object == "function") {
788
return freezeObject(object);
793
if (!Object.preventExtensions) {
794
Object.preventExtensions = function preventExtensions(object) {
798
if (!Object.isSealed) {
799
Object.isSealed = function isSealed(object) {
803
if (!Object.isFrozen) {
804
Object.isFrozen = function isFrozen(object) {
808
if (!Object.isExtensible) {
809
Object.isExtensible = function isExtensible(object) {
810
if (Object(object) === object) {
811
throw new TypeError(); // TODO message
814
while (owns(object, name)) {
818
var returnValue = owns(object, name);
824
var hasDontEnumBug = true,
831
"propertyIsEnumerable",
834
dontEnumsLength = dontEnums.length;
836
for (var key in {"toString": null}) {
837
hasDontEnumBug = false;
840
Object.keys = function keys(object) {
843
(typeof object != "object" && typeof object != "function") ||
846
throw new TypeError("Object.keys called on a non-object");
850
for (var name in object) {
851
if (owns(object, name)) {
856
if (hasDontEnumBug) {
857
for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
858
var dontEnum = dontEnums[i];
859
if (owns(object, dontEnum)) {
869
Date.now = function now() {
870
return new Date().getTime();
873
var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
874
"\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
876
if (!String.prototype.trim || ws.trim()) {
878
var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
879
trimEndRegexp = new RegExp(ws + ws + "*$");
880
String.prototype.trim = function trim() {
881
return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
885
function toInteger(n) {
887
if (n !== n) { // isNaN
889
} else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
890
n = (n > 0 || -1) * Math.floor(Math.abs(n));
895
function isPrimitive(input) {
896
var type = typeof input;
899
type === "undefined" ||
900
type === "boolean" ||
906
function toPrimitive(input) {
907
var val, valueOf, toString;
908
if (isPrimitive(input)) {
911
valueOf = input.valueOf;
912
if (typeof valueOf === "function") {
913
val = valueOf.call(input);
914
if (isPrimitive(val)) {
918
toString = input.toString;
919
if (typeof toString === "function") {
920
val = toString.call(input);
921
if (isPrimitive(val)) {
925
throw new TypeError();
927
var toObject = function (o) {
928
if (o == null) { // this matches both null and undefined
929
throw new TypeError("can't convert "+o+" to object");
936
define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
939
var EventEmitter = {};
940
var stopPropagation = function() { this.propagationStopped = true; };
941
var preventDefault = function() { this.defaultPrevented = true; };
944
EventEmitter._dispatchEvent = function(eventName, e) {
945
this._eventRegistry || (this._eventRegistry = {});
946
this._defaultHandlers || (this._defaultHandlers = {});
948
var listeners = this._eventRegistry[eventName] || [];
949
var defaultHandler = this._defaultHandlers[eventName];
950
if (!listeners.length && !defaultHandler)
953
if (typeof e != "object" || !e)
958
if (!e.stopPropagation)
959
e.stopPropagation = stopPropagation;
960
if (!e.preventDefault)
961
e.preventDefault = preventDefault;
965
for (var i=0; i<listeners.length; i++) {
967
if (e.propagationStopped)
971
if (defaultHandler && !e.defaultPrevented)
972
return defaultHandler(e);
976
EventEmitter._signal = function(eventName, e) {
977
var listeners = (this._eventRegistry || {})[eventName];
981
for (var i=0; i<listeners.length; i++)
985
EventEmitter.once = function(eventName, callback) {
987
var newCallback = function() {
988
fun && fun.apply(null, arguments);
989
_self.removeEventListener(event, newCallback);
991
this.addEventListener(event, newCallback);
995
EventEmitter.setDefaultHandler = function(eventName, callback) {
996
this._defaultHandlers = this._defaultHandlers || {};
998
if (this._defaultHandlers[eventName])
999
throw new Error("The default handler for '" + eventName + "' is already set");
1001
this._defaultHandlers[eventName] = callback;
1005
EventEmitter.addEventListener = function(eventName, callback, capturing) {
1006
this._eventRegistry = this._eventRegistry || {};
1008
var listeners = this._eventRegistry[eventName];
1010
listeners = this._eventRegistry[eventName] = [];
1012
if (listeners.indexOf(callback) == -1)
1013
listeners[capturing ? "unshift" : "push"](callback);
1017
EventEmitter.removeListener =
1018
EventEmitter.removeEventListener = function(eventName, callback) {
1019
this._eventRegistry = this._eventRegistry || {};
1021
var listeners = this._eventRegistry[eventName];
1025
var index = listeners.indexOf(callback);
1027
listeners.splice(index, 1);
1030
EventEmitter.removeAllListeners = function(eventName) {
1031
if (this._eventRegistry) this._eventRegistry[eventName] = [];
1034
exports.EventEmitter = EventEmitter;
1038
define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
1041
exports.inherits = (function() {
1042
var tempCtor = function() {};
1043
return function(ctor, superCtor) {
1044
tempCtor.prototype = superCtor.prototype;
1045
ctor.super_ = superCtor.prototype;
1046
ctor.prototype = new tempCtor();
1047
ctor.prototype.constructor = ctor;
1051
exports.mixin = function(obj, mixin) {
1052
for (var key in mixin) {
1053
obj[key] = mixin[key];
1057
exports.implement = function(proto, mixin) {
1058
exports.mixin(proto, mixin);
1063
define('ace/mode/php_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/php/php'], function(require, exports, module) {
1066
var oop = require("../lib/oop");
1067
var Mirror = require("../worker/mirror").Mirror;
1068
var PHP = require("./php/php").PHP;
1070
var PhpWorker = exports.PhpWorker = function(sender) {
1071
Mirror.call(this, sender);
1072
this.setTimeout(500);
1075
oop.inherits(PhpWorker, Mirror);
1079
this.onUpdate = function() {
1080
var value = this.doc.getValue();
1083
var tokens = PHP.Lexer(value, {short_open_tag: 1});
1085
new PHP.Parser(tokens);
1090
text: e.message.charAt(0).toUpperCase() + e.message.substring(1),
1095
if (errors.length) {
1096
this.sender.emit("error", errors);
1098
this.sender.emit("ok");
1102
}).call(PhpWorker.prototype);
1105
define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
1108
var Document = require("../document").Document;
1109
var lang = require("../lib/lang");
1111
var Mirror = exports.Mirror = function(sender) {
1112
this.sender = sender;
1113
var doc = this.doc = new Document("");
1115
var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
1118
sender.on("change", function(e) {
1119
doc.applyDeltas([e.data]);
1120
deferredUpdate.schedule(_self.$timeout);
1126
this.$timeout = 500;
1128
this.setTimeout = function(timeout) {
1129
this.$timeout = timeout;
1132
this.setValue = function(value) {
1133
this.doc.setValue(value);
1134
this.deferredUpdate.schedule(this.$timeout);
1137
this.getValue = function(callbackId) {
1138
this.sender.callback(this.doc.getValue(), callbackId);
1141
this.onUpdate = function() {
1144
}).call(Mirror.prototype);
1148
define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
1151
var oop = require("./lib/oop");
1152
var EventEmitter = require("./lib/event_emitter").EventEmitter;
1153
var Range = require("./range").Range;
1154
var Anchor = require("./anchor").Anchor;
1156
var Document = function(text) {
1158
if (text.length == 0) {
1160
} else if (Array.isArray(text)) {
1161
this.insertLines(0, text);
1163
this.insert({row: 0, column:0}, text);
1169
oop.implement(this, EventEmitter);
1170
this.setValue = function(text) {
1171
var len = this.getLength();
1172
this.remove(new Range(0, 0, len, this.getLine(len-1).length));
1173
this.insert({row: 0, column:0}, text);
1175
this.getValue = function() {
1176
return this.getAllLines().join(this.getNewLineCharacter());
1178
this.createAnchor = function(row, column) {
1179
return new Anchor(this, row, column);
1181
if ("aaa".split(/a/).length == 0)
1182
this.$split = function(text) {
1183
return text.replace(/\r\n|\r/g, "\n").split("\n");
1186
this.$split = function(text) {
1187
return text.split(/\r\n|\r|\n/);
1192
this.$detectNewLine = function(text) {
1193
var match = text.match(/^.*?(\r\n|\r|\n)/m);
1195
this.$autoNewLine = match[1];
1197
this.$autoNewLine = "\n";
1200
this.getNewLineCharacter = function() {
1201
switch (this.$newLineMode) {
1209
return this.$autoNewLine;
1213
this.$autoNewLine = "\n";
1214
this.$newLineMode = "auto";
1215
this.setNewLineMode = function(newLineMode) {
1216
if (this.$newLineMode === newLineMode)
1219
this.$newLineMode = newLineMode;
1221
this.getNewLineMode = function() {
1222
return this.$newLineMode;
1224
this.isNewLine = function(text) {
1225
return (text == "\r\n" || text == "\r" || text == "\n");
1227
this.getLine = function(row) {
1228
return this.$lines[row] || "";
1230
this.getLines = function(firstRow, lastRow) {
1231
return this.$lines.slice(firstRow, lastRow + 1);
1233
this.getAllLines = function() {
1234
return this.getLines(0, this.getLength());
1236
this.getLength = function() {
1237
return this.$lines.length;
1239
this.getTextRange = function(range) {
1240
if (range.start.row == range.end.row) {
1241
return this.$lines[range.start.row].substring(range.start.column,
1245
var lines = this.getLines(range.start.row+1, range.end.row-1);
1246
lines.unshift((this.$lines[range.start.row] || "").substring(range.start.column));
1247
lines.push((this.$lines[range.end.row] || "").substring(0, range.end.column));
1248
return lines.join(this.getNewLineCharacter());
1252
this.$clipPosition = function(position) {
1253
var length = this.getLength();
1254
if (position.row >= length) {
1255
position.row = Math.max(0, length - 1);
1256
position.column = this.getLine(length-1).length;
1260
this.insert = function(position, text) {
1261
if (!text || text.length === 0)
1264
position = this.$clipPosition(position);
1265
if (this.getLength() <= 1)
1266
this.$detectNewLine(text);
1268
var lines = this.$split(text);
1269
var firstLine = lines.splice(0, 1)[0];
1270
var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
1272
position = this.insertInLine(position, firstLine);
1273
if (lastLine !== null) {
1274
position = this.insertNewLine(position); // terminate first line
1275
position = this.insertLines(position.row, lines);
1276
position = this.insertInLine(position, lastLine || "");
1280
this.insertLines = function(row, lines) {
1281
if (lines.length == 0)
1282
return {row: row, column: 0};
1283
if (lines.length > 0xFFFF) {
1284
var end = this.insertLines(row, lines.slice(0xFFFF));
1285
lines = lines.slice(0, 0xFFFF);
1288
var args = [row, 0];
1289
args.push.apply(args, lines);
1290
this.$lines.splice.apply(this.$lines, args);
1292
var range = new Range(row, 0, row + lines.length, 0);
1294
action: "insertLines",
1298
this._emit("change", { data: delta });
1299
return end || range.end;
1301
this.insertNewLine = function(position) {
1302
position = this.$clipPosition(position);
1303
var line = this.$lines[position.row] || "";
1305
this.$lines[position.row] = line.substring(0, position.column);
1306
this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
1309
row : position.row + 1,
1314
action: "insertText",
1315
range: Range.fromPoints(position, end),
1316
text: this.getNewLineCharacter()
1318
this._emit("change", { data: delta });
1322
this.insertInLine = function(position, text) {
1323
if (text.length == 0)
1326
var line = this.$lines[position.row] || "";
1328
this.$lines[position.row] = line.substring(0, position.column) + text
1329
+ line.substring(position.column);
1333
column : position.column + text.length
1337
action: "insertText",
1338
range: Range.fromPoints(position, end),
1341
this._emit("change", { data: delta });
1345
this.remove = function(range) {
1346
range.start = this.$clipPosition(range.start);
1347
range.end = this.$clipPosition(range.end);
1349
if (range.isEmpty())
1352
var firstRow = range.start.row;
1353
var lastRow = range.end.row;
1355
if (range.isMultiLine()) {
1356
var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
1357
var lastFullRow = lastRow - 1;
1359
if (range.end.column > 0)
1360
this.removeInLine(lastRow, 0, range.end.column);
1362
if (lastFullRow >= firstFullRow)
1363
this.removeLines(firstFullRow, lastFullRow);
1365
if (firstFullRow != firstRow) {
1366
this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
1367
this.removeNewLine(range.start.row);
1371
this.removeInLine(firstRow, range.start.column, range.end.column);
1375
this.removeInLine = function(row, startColumn, endColumn) {
1376
if (startColumn == endColumn)
1379
var range = new Range(row, startColumn, row, endColumn);
1380
var line = this.getLine(row);
1381
var removed = line.substring(startColumn, endColumn);
1382
var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
1383
this.$lines.splice(row, 1, newLine);
1386
action: "removeText",
1390
this._emit("change", { data: delta });
1393
this.removeLines = function(firstRow, lastRow) {
1394
var range = new Range(firstRow, 0, lastRow + 1, 0);
1395
var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
1398
action: "removeLines",
1400
nl: this.getNewLineCharacter(),
1403
this._emit("change", { data: delta });
1406
this.removeNewLine = function(row) {
1407
var firstLine = this.getLine(row);
1408
var secondLine = this.getLine(row+1);
1410
var range = new Range(row, firstLine.length, row+1, 0);
1411
var line = firstLine + secondLine;
1413
this.$lines.splice(row, 2, line);
1416
action: "removeText",
1418
text: this.getNewLineCharacter()
1420
this._emit("change", { data: delta });
1422
this.replace = function(range, text) {
1423
if (text.length == 0 && range.isEmpty())
1425
if (text == this.getTextRange(range))
1430
var end = this.insert(range.start, text);
1438
this.applyDeltas = function(deltas) {
1439
for (var i=0; i<deltas.length; i++) {
1440
var delta = deltas[i];
1441
var range = Range.fromPoints(delta.range.start, delta.range.end);
1443
if (delta.action == "insertLines")
1444
this.insertLines(range.start.row, delta.lines);
1445
else if (delta.action == "insertText")
1446
this.insert(range.start, delta.text);
1447
else if (delta.action == "removeLines")
1448
this.removeLines(range.start.row, range.end.row - 1);
1449
else if (delta.action == "removeText")
1453
this.revertDeltas = function(deltas) {
1454
for (var i=deltas.length-1; i>=0; i--) {
1455
var delta = deltas[i];
1457
var range = Range.fromPoints(delta.range.start, delta.range.end);
1459
if (delta.action == "insertLines")
1460
this.removeLines(range.start.row, range.end.row - 1);
1461
else if (delta.action == "insertText")
1463
else if (delta.action == "removeLines")
1464
this.insertLines(range.start.row, delta.lines);
1465
else if (delta.action == "removeText")
1466
this.insert(range.start, delta.text);
1469
this.indexToPosition = function(index, startRow) {
1470
var lines = this.$lines || this.getAllLines();
1471
var newlineLength = this.getNewLineCharacter().length;
1472
for (var i = startRow || 0, l = lines.length; i < l; i++) {
1473
index -= lines[i].length + newlineLength;
1475
return {row: i, column: index + lines[i].length + newlineLength};
1477
return {row: l-1, column: lines[l-1].length};
1479
this.positionToIndex = function(pos, startRow) {
1480
var lines = this.$lines || this.getAllLines();
1481
var newlineLength = this.getNewLineCharacter().length;
1483
var row = Math.min(pos.row, lines.length);
1484
for (var i = startRow || 0; i < row; ++i)
1485
index += lines[i].length;
1487
return index + newlineLength * i + pos.column;
1490
}).call(Document.prototype);
1492
exports.Document = Document;
1495
define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
1497
var comparePoints = function(p1, p2) {
1498
return p1.row - p2.row || p1.column - p2.column;
1500
var Range = function(startRow, startColumn, endRow, endColumn) {
1513
this.isEqual = function(range) {
1514
return this.start.row === range.start.row &&
1515
this.end.row === range.end.row &&
1516
this.start.column === range.start.column &&
1517
this.end.column === range.end.column;
1519
this.toString = function() {
1520
return ("Range: [" + this.start.row + "/" + this.start.column +
1521
"] -> [" + this.end.row + "/" + this.end.column + "]");
1524
this.contains = function(row, column) {
1525
return this.compare(row, column) == 0;
1527
this.compareRange = function(range) {
1530
start = range.start;
1532
cmp = this.compare(end.row, end.column);
1534
cmp = this.compare(start.row, start.column);
1537
} else if (cmp == 0) {
1542
} else if (cmp == -1) {
1545
cmp = this.compare(start.row, start.column);
1548
} else if (cmp == 1) {
1555
this.comparePoint = function(p) {
1556
return this.compare(p.row, p.column);
1558
this.containsRange = function(range) {
1559
return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
1561
this.intersects = function(range) {
1562
var cmp = this.compareRange(range);
1563
return (cmp == -1 || cmp == 0 || cmp == 1);
1565
this.isEnd = function(row, column) {
1566
return this.end.row == row && this.end.column == column;
1568
this.isStart = function(row, column) {
1569
return this.start.row == row && this.start.column == column;
1571
this.setStart = function(row, column) {
1572
if (typeof row == "object") {
1573
this.start.column = row.column;
1574
this.start.row = row.row;
1576
this.start.row = row;
1577
this.start.column = column;
1580
this.setEnd = function(row, column) {
1581
if (typeof row == "object") {
1582
this.end.column = row.column;
1583
this.end.row = row.row;
1586
this.end.column = column;
1589
this.inside = function(row, column) {
1590
if (this.compare(row, column) == 0) {
1591
if (this.isEnd(row, column) || this.isStart(row, column)) {
1599
this.insideStart = function(row, column) {
1600
if (this.compare(row, column) == 0) {
1601
if (this.isEnd(row, column)) {
1609
this.insideEnd = function(row, column) {
1610
if (this.compare(row, column) == 0) {
1611
if (this.isStart(row, column)) {
1619
this.compare = function(row, column) {
1620
if (!this.isMultiLine()) {
1621
if (row === this.start.row) {
1622
return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
1626
if (row < this.start.row)
1629
if (row > this.end.row)
1632
if (this.start.row === row)
1633
return column >= this.start.column ? 0 : -1;
1635
if (this.end.row === row)
1636
return column <= this.end.column ? 0 : 1;
1640
this.compareStart = function(row, column) {
1641
if (this.start.row == row && this.start.column == column) {
1644
return this.compare(row, column);
1647
this.compareEnd = function(row, column) {
1648
if (this.end.row == row && this.end.column == column) {
1651
return this.compare(row, column);
1654
this.compareInside = function(row, column) {
1655
if (this.end.row == row && this.end.column == column) {
1657
} else if (this.start.row == row && this.start.column == column) {
1660
return this.compare(row, column);
1663
this.clipRows = function(firstRow, lastRow) {
1664
if (this.end.row > lastRow)
1665
var end = {row: lastRow + 1, column: 0};
1666
else if (this.end.row < firstRow)
1667
var end = {row: firstRow, column: 0};
1669
if (this.start.row > lastRow)
1670
var start = {row: lastRow + 1, column: 0};
1671
else if (this.start.row < firstRow)
1672
var start = {row: firstRow, column: 0};
1674
return Range.fromPoints(start || this.start, end || this.end);
1676
this.extend = function(row, column) {
1677
var cmp = this.compare(row, column);
1682
var start = {row: row, column: column};
1684
var end = {row: row, column: column};
1686
return Range.fromPoints(start || this.start, end || this.end);
1689
this.isEmpty = function() {
1690
return (this.start.row === this.end.row && this.start.column === this.end.column);
1692
this.isMultiLine = function() {
1693
return (this.start.row !== this.end.row);
1695
this.clone = function() {
1696
return Range.fromPoints(this.start, this.end);
1698
this.collapseRows = function() {
1699
if (this.end.column == 0)
1700
return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
1702
return new Range(this.start.row, 0, this.end.row, 0)
1704
this.toScreenRange = function(session) {
1705
var screenPosStart = session.documentToScreenPosition(this.start);
1706
var screenPosEnd = session.documentToScreenPosition(this.end);
1709
screenPosStart.row, screenPosStart.column,
1710
screenPosEnd.row, screenPosEnd.column
1713
this.moveBy = function(row, column) {
1714
this.start.row += row;
1715
this.start.column += column;
1716
this.end.row += row;
1717
this.end.column += column;
1720
}).call(Range.prototype);
1721
Range.fromPoints = function(start, end) {
1722
return new Range(start.row, start.column, end.row, end.column);
1724
Range.comparePoints = comparePoints;
1726
exports.Range = Range;
1729
define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
1732
var oop = require("./lib/oop");
1733
var EventEmitter = require("./lib/event_emitter").EventEmitter;
1735
var Anchor = exports.Anchor = function(doc, row, column) {
1736
this.document = doc;
1738
if (typeof column == "undefined")
1739
this.setPosition(row.row, row.column);
1741
this.setPosition(row, column);
1743
this.$onChange = this.onChange.bind(this);
1744
doc.on("change", this.$onChange);
1749
oop.implement(this, EventEmitter);
1751
this.getPosition = function() {
1752
return this.$clipPositionToDocument(this.row, this.column);
1755
this.getDocument = function() {
1756
return this.document;
1759
this.onChange = function(e) {
1761
var range = delta.range;
1763
if (range.start.row == range.end.row && range.start.row != this.row)
1766
if (range.start.row > this.row)
1769
if (range.start.row == this.row && range.start.column > this.column)
1773
var column = this.column;
1775
if (delta.action === "insertText") {
1776
if (range.start.row === row && range.start.column <= column) {
1777
if (range.start.row === range.end.row) {
1778
column += range.end.column - range.start.column;
1781
column -= range.start.column;
1782
row += range.end.row - range.start.row;
1785
else if (range.start.row !== range.end.row && range.start.row < row) {
1786
row += range.end.row - range.start.row;
1788
} else if (delta.action === "insertLines") {
1789
if (range.start.row <= row) {
1790
row += range.end.row - range.start.row;
1793
else if (delta.action == "removeText") {
1794
if (range.start.row == row && range.start.column < column) {
1795
if (range.end.column >= column)
1796
column = range.start.column;
1798
column = Math.max(0, column - (range.end.column - range.start.column));
1800
} else if (range.start.row !== range.end.row && range.start.row < row) {
1801
if (range.end.row == row) {
1802
column = Math.max(0, column - range.end.column) + range.start.column;
1804
row -= (range.end.row - range.start.row);
1806
else if (range.end.row == row) {
1807
row -= range.end.row - range.start.row;
1808
column = Math.max(0, column - range.end.column) + range.start.column;
1810
} else if (delta.action == "removeLines") {
1811
if (range.start.row <= row) {
1812
if (range.end.row <= row)
1813
row -= range.end.row - range.start.row;
1815
row = range.start.row;
1821
this.setPosition(row, column, true);
1824
this.setPosition = function(row, column, noClip) {
1833
pos = this.$clipPositionToDocument(row, column);
1836
if (this.row == pos.row && this.column == pos.column)
1845
this.column = pos.column;
1846
this._emit("change", {
1852
this.detach = function() {
1853
this.document.removeEventListener("change", this.$onChange);
1855
this.$clipPositionToDocument = function(row, column) {
1858
if (row >= this.document.getLength()) {
1859
pos.row = Math.max(0, this.document.getLength() - 1);
1860
pos.column = this.document.getLine(pos.row).length;
1868
pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
1877
}).call(Anchor.prototype);
1881
define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
1884
exports.stringReverse = function(string) {
1885
return string.split("").reverse().join("");
1888
exports.stringRepeat = function (string, count) {
1900
var trimBeginRegexp = /^\s\s*/;
1901
var trimEndRegexp = /\s\s*$/;
1903
exports.stringTrimLeft = function (string) {
1904
return string.replace(trimBeginRegexp, '');
1907
exports.stringTrimRight = function (string) {
1908
return string.replace(trimEndRegexp, '');
1911
exports.copyObject = function(obj) {
1913
for (var key in obj) {
1914
copy[key] = obj[key];
1919
exports.copyArray = function(array){
1921
for (var i=0, l=array.length; i<l; i++) {
1922
if (array[i] && typeof array[i] == "object")
1923
copy[i] = this.copyObject( array[i] );
1930
exports.deepCopy = function (obj) {
1931
if (typeof obj != "object") {
1935
var copy = obj.constructor();
1936
for (var key in obj) {
1937
if (typeof obj[key] == "object") {
1938
copy[key] = this.deepCopy(obj[key]);
1940
copy[key] = obj[key];
1946
exports.arrayToMap = function(arr) {
1948
for (var i=0; i<arr.length; i++) {
1955
exports.createMap = function(props) {
1956
var map = Object.create(null);
1957
for (var i in props) {
1962
exports.arrayRemove = function(array, value) {
1963
for (var i = 0; i <= array.length; i++) {
1964
if (value === array[i]) {
1970
exports.escapeRegExp = function(str) {
1971
return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
1974
exports.escapeHTML = function(str) {
1975
return str.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<");
1978
exports.getMatchOffsets = function(string, regExp) {
1981
string.replace(regExp, function(str) {
1983
offset: arguments[arguments.length-2],
1990
exports.deferredCall = function(fcn) {
1993
var callback = function() {
1998
var deferred = function(timeout) {
2000
timer = setTimeout(callback, timeout || 0);
2004
deferred.schedule = deferred;
2006
deferred.call = function() {
2012
deferred.cancel = function() {
2013
clearTimeout(timer);
2022
exports.delayedCall = function(fcn, defaultTimeout) {
2024
var callback = function() {
2029
var _self = function(timeout) {
2030
timer && clearTimeout(timer);
2031
timer = setTimeout(callback, timeout || defaultTimeout);
2034
_self.delay = _self;
2035
_self.schedule = function(timeout) {
2037
timer = setTimeout(callback, timeout || 0);
2040
_self.call = function() {
2045
_self.cancel = function() {
2046
timer && clearTimeout(timer);
2050
_self.isPending = function() {
2060
define('ace/mode/php/php', ['require', 'exports', 'module' ], function(require, exports, module) {
2062
var PHP = {Constants:{}};
2069
PHP.Constants.T_INCLUDE = 262;
2070
PHP.Constants.T_INCLUDE_ONCE = 261;
2071
PHP.Constants.T_EVAL = 260;
2072
PHP.Constants.T_REQUIRE = 259;
2073
PHP.Constants.T_REQUIRE_ONCE = 258;
2074
PHP.Constants.T_LOGICAL_OR = 263;
2075
PHP.Constants.T_LOGICAL_XOR = 264;
2076
PHP.Constants.T_LOGICAL_AND = 265;
2077
PHP.Constants.T_PRINT = 266;
2078
PHP.Constants.T_PLUS_EQUAL = 277;
2079
PHP.Constants.T_MINUS_EQUAL = 276;
2080
PHP.Constants.T_MUL_EQUAL = 275;
2081
PHP.Constants.T_DIV_EQUAL = 274;
2082
PHP.Constants.T_CONCAT_EQUAL = 273;
2083
PHP.Constants.T_MOD_EQUAL = 272;
2084
PHP.Constants.T_AND_EQUAL = 271;
2085
PHP.Constants.T_OR_EQUAL = 270;
2086
PHP.Constants.T_XOR_EQUAL = 269;
2087
PHP.Constants.T_SL_EQUAL = 268;
2088
PHP.Constants.T_SR_EQUAL = 267;
2089
PHP.Constants.T_BOOLEAN_OR = 278;
2090
PHP.Constants.T_BOOLEAN_AND = 279;
2091
PHP.Constants.T_IS_EQUAL = 283;
2092
PHP.Constants.T_IS_NOT_EQUAL = 282;
2093
PHP.Constants.T_IS_IDENTICAL = 281;
2094
PHP.Constants.T_IS_NOT_IDENTICAL = 280;
2095
PHP.Constants.T_IS_SMALLER_OR_EQUAL = 285;
2096
PHP.Constants.T_IS_GREATER_OR_EQUAL = 284;
2097
PHP.Constants.T_SL = 287;
2098
PHP.Constants.T_SR = 286;
2099
PHP.Constants.T_INSTANCEOF = 288;
2100
PHP.Constants.T_INC = 297;
2101
PHP.Constants.T_DEC = 296;
2102
PHP.Constants.T_INT_CAST = 295;
2103
PHP.Constants.T_DOUBLE_CAST = 294;
2104
PHP.Constants.T_STRING_CAST = 293;
2105
PHP.Constants.T_ARRAY_CAST = 292;
2106
PHP.Constants.T_OBJECT_CAST = 291;
2107
PHP.Constants.T_BOOL_CAST = 290;
2108
PHP.Constants.T_UNSET_CAST = 289;
2109
PHP.Constants.T_NEW = 299;
2110
PHP.Constants.T_CLONE = 298;
2111
PHP.Constants.T_EXIT = 300;
2112
PHP.Constants.T_IF = 301;
2113
PHP.Constants.T_ELSEIF = 302;
2114
PHP.Constants.T_ELSE = 303;
2115
PHP.Constants.T_ENDIF = 304;
2116
PHP.Constants.T_LNUMBER = 305;
2117
PHP.Constants.T_DNUMBER = 306;
2118
PHP.Constants.T_STRING = 307;
2119
PHP.Constants.T_STRING_VARNAME = 308;
2120
PHP.Constants.T_VARIABLE = 309;
2121
PHP.Constants.T_NUM_STRING = 310;
2122
PHP.Constants.T_INLINE_HTML = 311;
2123
PHP.Constants.T_CHARACTER = 312;
2124
PHP.Constants.T_BAD_CHARACTER = 313;
2125
PHP.Constants.T_ENCAPSED_AND_WHITESPACE = 314;
2126
PHP.Constants.T_CONSTANT_ENCAPSED_STRING = 315;
2127
PHP.Constants.T_ECHO = 316;
2128
PHP.Constants.T_DO = 317;
2129
PHP.Constants.T_WHILE = 318;
2130
PHP.Constants.T_ENDWHILE = 319;
2131
PHP.Constants.T_FOR = 320;
2132
PHP.Constants.T_ENDFOR = 321;
2133
PHP.Constants.T_FOREACH = 322;
2134
PHP.Constants.T_ENDFOREACH = 323;
2135
PHP.Constants.T_DECLARE = 324;
2136
PHP.Constants.T_ENDDECLARE = 325;
2137
PHP.Constants.T_AS = 326;
2138
PHP.Constants.T_SWITCH = 327;
2139
PHP.Constants.T_ENDSWITCH = 328;
2140
PHP.Constants.T_CASE = 329;
2141
PHP.Constants.T_DEFAULT = 330;
2142
PHP.Constants.T_BREAK = 331;
2143
PHP.Constants.T_CONTINUE = 332;
2144
PHP.Constants.T_GOTO = 333;
2145
PHP.Constants.T_FUNCTION = 334;
2146
PHP.Constants.T_CONST = 335;
2147
PHP.Constants.T_RETURN = 336;
2148
PHP.Constants.T_TRY = 337;
2149
PHP.Constants.T_CATCH = 338;
2150
PHP.Constants.T_THROW = 339;
2151
PHP.Constants.T_USE = 340;
2152
PHP.Constants.T_GLOBAL = 341;
2153
PHP.Constants.T_STATIC = 347;
2154
PHP.Constants.T_ABSTRACT = 346;
2155
PHP.Constants.T_FINAL = 345;
2156
PHP.Constants.T_PRIVATE = 344;
2157
PHP.Constants.T_PROTECTED = 343;
2158
PHP.Constants.T_PUBLIC = 342;
2159
PHP.Constants.T_VAR = 348;
2160
PHP.Constants.T_UNSET = 349;
2161
PHP.Constants.T_ISSET = 350;
2162
PHP.Constants.T_EMPTY = 351;
2163
PHP.Constants.T_HALT_COMPILER = 352;
2164
PHP.Constants.T_CLASS = 353;
2165
PHP.Constants.T_INTERFACE = 354;
2166
PHP.Constants.T_EXTENDS = 355;
2167
PHP.Constants.T_IMPLEMENTS = 356;
2168
PHP.Constants.T_OBJECT_OPERATOR = 357;
2169
PHP.Constants.T_DOUBLE_ARROW = 358;
2170
PHP.Constants.T_LIST = 359;
2171
PHP.Constants.T_ARRAY = 360;
2172
PHP.Constants.T_CLASS_C = 361;
2173
PHP.Constants.T_TRAIT_C = 381;
2174
PHP.Constants.T_METHOD_C = 362;
2175
PHP.Constants.T_FUNC_C = 363;
2176
PHP.Constants.T_LINE = 364;
2177
PHP.Constants.T_FILE = 365;
2178
PHP.Constants.T_COMMENT = 366;
2179
PHP.Constants.T_DOC_COMMENT = 367;
2180
PHP.Constants.T_OPEN_TAG = 368;
2181
PHP.Constants.T_OPEN_TAG_WITH_ECHO = 369;
2182
PHP.Constants.T_CLOSE_TAG = 370;
2183
PHP.Constants.T_WHITESPACE = 371;
2184
PHP.Constants.T_START_HEREDOC = 372;
2185
PHP.Constants.T_END_HEREDOC = 373;
2186
PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES = 374;
2187
PHP.Constants.T_CURLY_OPEN = 375;
2188
PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM = 376;
2189
PHP.Constants.T_DOUBLE_COLON = 376;
2190
PHP.Constants.T_NAMESPACE = 377;
2191
PHP.Constants.T_NS_C = 378;
2192
PHP.Constants.T_DIR = 379;
2193
PHP.Constants.T_NS_SEPARATOR = 380;
2194
PHP.Lexer = function( src, ini ) {
2198
lineBreaker = function( result ) {
2199
if (result.match(/\n/) !== null) {
2200
var quote = result.substring(0, 1);
2201
result = '[' + result.split(/\n/).join( quote + "," + quote ) + '].join("\\n")';
2209
openTag = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag) ) ? /(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i),
2210
openTagStart = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag)) ? /^(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /^(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i),
2213
value: PHP.Constants.T_ABSTRACT,
2214
re: /^abstract(?=\s)/i
2217
value: PHP.Constants.T_IMPLEMENTS,
2218
re: /^implements(?=\s)/i
2221
value: PHP.Constants.T_INTERFACE,
2222
re: /^interface(?=\s)/i
2225
value: PHP.Constants.T_CONST,
2229
value: PHP.Constants.T_STATIC,
2230
re: /^static(?=\s)/i
2233
value: PHP.Constants.T_FINAL,
2237
value: PHP.Constants.T_VAR,
2241
value: PHP.Constants.T_GLOBAL,
2242
re: /^global(?=\s)/i
2245
value: PHP.Constants.T_CLONE,
2249
value: PHP.Constants.T_THROW,
2253
value: PHP.Constants.T_EXTENDS,
2254
re: /^extends(?=\s)/i
2257
value: PHP.Constants.T_AND_EQUAL,
2261
value: PHP.Constants.T_AS,
2265
value: PHP.Constants.T_ARRAY_CAST,
2269
value: PHP.Constants.T_BOOL_CAST,
2270
re: /^\((bool|boolean)\)/i
2273
value: PHP.Constants.T_DOUBLE_CAST,
2274
re: /^\((real|float|double)\)/i
2277
value: PHP.Constants.T_INT_CAST,
2278
re: /^\((int|integer)\)/i
2281
value: PHP.Constants.T_OBJECT_CAST,
2285
value: PHP.Constants.T_STRING_CAST,
2289
value: PHP.Constants.T_UNSET_CAST,
2293
value: PHP.Constants.T_TRY,
2297
value: PHP.Constants.T_CATCH,
2298
re: /^catch(?=\s*\()/i
2301
value: PHP.Constants.T_INSTANCEOF,
2302
re: /^instanceof(?=\s)/i
2305
value: PHP.Constants.T_LOGICAL_OR,
2309
value: PHP.Constants.T_LOGICAL_AND,
2313
value: PHP.Constants.T_LOGICAL_XOR,
2317
value: PHP.Constants.T_BOOLEAN_AND,
2321
value: PHP.Constants.T_BOOLEAN_OR,
2325
value: PHP.Constants.T_CONTINUE,
2326
re: /^continue(?=\s|;)/i
2329
value: PHP.Constants.T_BREAK,
2330
re: /^break(?=\s|;)/i
2333
value: PHP.Constants.T_ENDDECLARE,
2334
re: /^enddeclare(?=\s|;)/i
2337
value: PHP.Constants.T_ENDFOR,
2338
re: /^endfor(?=\s|;)/i
2341
value: PHP.Constants.T_ENDFOREACH,
2342
re: /^endforeach(?=\s|;)/i
2345
value: PHP.Constants.T_ENDIF,
2346
re: /^endif(?=\s|;)/i
2349
value: PHP.Constants.T_ENDSWITCH,
2350
re: /^endswitch(?=\s|;)/i
2353
value: PHP.Constants.T_ENDWHILE,
2354
re: /^endwhile(?=\s|;)/i
2357
value: PHP.Constants.T_CASE,
2361
value: PHP.Constants.T_DEFAULT,
2362
re: /^default(?=\s|:)/i
2365
value: PHP.Constants.T_SWITCH,
2366
re: /^switch(?=[ (])/i
2369
value: PHP.Constants.T_EXIT,
2370
re: /^(exit|die)(?=[ \(;])/i
2373
value: PHP.Constants.T_CLOSE_TAG,
2374
re: /^(\?\>|\%\>|\<\/script\>)\s?\s?/i,
2375
func: function( result ) {
2381
value: PHP.Constants.T_DOUBLE_ARROW,
2385
value: PHP.Constants.T_DOUBLE_COLON,
2389
value: PHP.Constants.T_METHOD_C,
2393
value: PHP.Constants.T_LINE,
2397
value: PHP.Constants.T_FILE,
2401
value: PHP.Constants.T_FUNC_C,
2405
value: PHP.Constants.T_NS_C,
2406
re: /^__NAMESPACE__/
2409
value: PHP.Constants.T_TRAIT_C,
2413
value: PHP.Constants.T_DIR,
2417
value: PHP.Constants.T_CLASS_C,
2421
value: PHP.Constants.T_INC,
2425
value: PHP.Constants.T_DEC,
2429
value: PHP.Constants.T_CONCAT_EQUAL,
2433
value: PHP.Constants.T_DIV_EQUAL,
2437
value: PHP.Constants.T_XOR_EQUAL,
2441
value: PHP.Constants.T_MUL_EQUAL,
2445
value: PHP.Constants.T_MOD_EQUAL,
2449
value: PHP.Constants.T_SL_EQUAL,
2453
value: PHP.Constants.T_START_HEREDOC,
2454
re: /^<<<[A-Z_0-9]+\s/i,
2455
func: function( result ){
2456
heredoc = result.substring(3, result.length - 1);
2461
value: PHP.Constants.T_SL,
2465
value: PHP.Constants.T_IS_SMALLER_OR_EQUAL,
2469
value: PHP.Constants.T_SR_EQUAL,
2473
value: PHP.Constants.T_SR,
2477
value: PHP.Constants.T_IS_GREATER_OR_EQUAL,
2481
value: PHP.Constants.T_OR_EQUAL,
2485
value: PHP.Constants.T_PLUS_EQUAL,
2489
value: PHP.Constants.T_MINUS_EQUAL,
2493
value: PHP.Constants.T_OBJECT_OPERATOR,
2497
value: PHP.Constants.T_CLASS,
2498
re: /^class(?=[\s\{])/i,
2499
afterWhitespace: true
2502
value: PHP.Constants.T_PUBLIC,
2503
re: /^public(?=[\s])/i
2506
value: PHP.Constants.T_PRIVATE,
2507
re: /^private(?=[\s])/i
2510
value: PHP.Constants.T_PROTECTED,
2511
re: /^protected(?=[\s])/i
2514
value: PHP.Constants.T_ARRAY,
2515
re: /^array(?=\s*?\()/i
2518
value: PHP.Constants.T_EMPTY,
2519
re: /^empty(?=[ \(])/i
2522
value: PHP.Constants.T_ISSET,
2523
re: /^isset(?=[ \(])/i
2526
value: PHP.Constants.T_UNSET,
2527
re: /^unset(?=[ \(])/i
2530
value: PHP.Constants.T_RETURN,
2531
re: /^return(?=[ "'(;])/i
2534
value: PHP.Constants.T_FUNCTION,
2535
re: /^function(?=[ "'(;])/i
2538
value: PHP.Constants.T_ECHO,
2539
re: /^echo(?=[ "'(;])/i
2542
value: PHP.Constants.T_LIST,
2543
re: /^list(?=\s*?\()/i
2546
value: PHP.Constants.T_PRINT,
2547
re: /^print(?=[ "'(;])/i
2550
value: PHP.Constants.T_INCLUDE,
2551
re: /^include(?=[ "'(;])/i
2554
value: PHP.Constants.T_INCLUDE_ONCE,
2555
re: /^include_once(?=[ "'(;])/i
2558
value: PHP.Constants.T_REQUIRE,
2559
re: /^require(?=[ "'(;])/i
2562
value: PHP.Constants.T_REQUIRE_ONCE,
2563
re: /^require_once(?=[ "'(;])/i
2566
value: PHP.Constants.T_NEW,
2570
value: PHP.Constants.T_COMMENT,
2571
re: /^\/\*([\S\s]*?)(?:\*\/|$)/
2574
value: PHP.Constants.T_COMMENT,
2578
value: PHP.Constants.T_COMMENT,
2582
value: PHP.Constants.T_ELSEIF,
2583
re: /^elseif(?=[\s(])/i
2586
value: PHP.Constants.T_GOTO,
2587
re: /^goto(?=[\s(])/i
2590
value: PHP.Constants.T_ELSE,
2591
re: /^else(?=[\s{:])/i
2594
value: PHP.Constants.T_IF,
2598
value: PHP.Constants.T_DO,
2602
value: PHP.Constants.T_WHILE,
2603
re: /^while(?=[ (])/i
2606
value: PHP.Constants.T_FOREACH,
2607
re: /^foreach(?=[ (])/i
2610
value: PHP.Constants.T_ISSET,
2611
re: /^isset(?=[ (])/i
2614
value: PHP.Constants.T_IS_IDENTICAL,
2618
value: PHP.Constants.T_IS_EQUAL,
2622
value: PHP.Constants.T_IS_NOT_IDENTICAL,
2626
value: PHP.Constants.T_IS_NOT_EQUAL,
2630
value: PHP.Constants.T_FOR,
2635
value: PHP.Constants.T_DNUMBER,
2636
re: /^[0-9]*\.[0-9]+([eE][-]?[0-9]*)?/
2640
value: PHP.Constants.T_LNUMBER,
2641
re: /^(0x[0-9A-F]+|[0-9]+)/i
2644
value: PHP.Constants.T_OPEN_TAG_WITH_ECHO,
2645
re: /^(\<\?=|\<\%=)/i
2648
value: PHP.Constants.T_OPEN_TAG,
2652
value: PHP.Constants.T_VARIABLE,
2653
re: /^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
2656
value: PHP.Constants.T_WHITESPACE,
2660
value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING,
2661
re: /^("(?:[^"\\]|\\[\s\S])*"|'(?:[^'\\]|\\[\s\S])*')/,
2662
func: function( result, token ) {
2668
if (result.substring( 0,1 ) === "'") {
2672
var match = result.match( /(?:[^\\]|\\.)*[^\\]\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/g );
2673
if ( match !== null ) {
2675
while( result.length > 0 ) {
2676
len = result.length;
2677
match = result.match( /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\@\^\%\"\'\{\}]/ );
2679
if ( match !== null ) {
2681
results.push( match[ 0 ] );
2682
result = result.substring( 1 );
2684
if ( curlyOpen > 0 && match[ 0 ] === "}") {
2688
if ( match[ 0 ] === "[" ) {
2692
if ( match[ 0 ] === "]" ) {
2698
match = result.match(/^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/);
2702
if ( match !== null ) {
2705
parseInt(PHP.Constants.T_VARIABLE, 10),
2710
result = result.substring( match[ 0 ].length );
2712
match = result.match(/^(\-\>)([a-zA-Z0-9_\x7f-\xff]*)/);
2714
if ( match !== null ) {
2717
parseInt(PHP.Constants.T_OBJECT_OPERATOR, 10),
2722
parseInt(PHP.Constants.T_STRING, 10),
2726
result = result.substring( match[ 0 ].length );
2730
if ( result.match( /^\[/g ) !== null ) {
2736
if ( curlyOpen > 0) {
2737
re = /^([^\\\$"{}\]]|\\.)+/g;
2739
re = /^([^\\\$"{]|\\.|{[^\$])+/g;
2742
while(( match = result.match( re )) !== null ) {
2745
if (result.length === 1) {
2746
throw new Error(match);
2752
parseInt(( curlyOpen > 0 ) ? PHP.Constants.T_CONSTANT_ENCAPSED_STRING : PHP.Constants.T_ENCAPSED_AND_WHITESPACE, 10),
2757
line += match[ 0 ].split('\n').length - 1;
2759
result = result.substring( match[ 0 ].length );
2763
if( result.match(/^{\$/) !== null ) {
2766
parseInt(PHP.Constants.T_CURLY_OPEN, 10),
2770
result = result.substring( 1 );
2774
if (len === result.length) {
2775
if ((match = result.match( /^(([^\\]|\\.)*?[^\\]\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/g )) !== null) {
2789
value: PHP.Constants.T_STRING,
2790
re: /^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
2794
re: /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\{\}\@\^\%\"\'\$\~]/
2806
if ( src === null ) {
2810
if ( typeof src !== "string" ) {
2811
src = src.toString();
2816
while (src.length > 0 && cancel === true) {
2818
if ( insidePHP === true ) {
2820
if ( heredoc !== undefined ) {
2822
var regexp = new RegExp('([\\S\\s]*)(\\r\\n|\\n|\\r)(' + heredoc + ')(;|\\r\\n|\\n)',"i");
2826
var result = src.match( regexp );
2827
if ( result !== null ) {
2830
parseInt(PHP.Constants.T_ENCAPSED_AND_WHITESPACE, 10),
2831
result[ 1 ].replace(/^\n/g,"").replace(/\\\$/g,"$") + "\n",
2834
line += result[ 1 ].split('\n').length;
2836
parseInt(PHP.Constants.T_END_HEREDOC, 10),
2841
src = src.substring( result[1].length + result[2].length + result[3].length );
2842
heredoc = undefined;
2845
if (result === null) {
2851
cancel = tokens.some(function( token ){
2852
if ( token.afterWhitespace === true ) {
2853
var last = results[ results.length - 1 ];
2854
if ( !Array.isArray( last ) || (last[ 0 ] !== PHP.Constants.T_WHITESPACE && last[ 0 ] !== PHP.Constants.T_OPEN_TAG && last[ 0 ] !== PHP.Constants.T_COMMENT)) {
2858
var result = src.match( token.re );
2860
if ( result !== null ) {
2861
if ( token.value !== -1) {
2862
var resultString = result[ 0 ];
2866
if (token.func !== undefined ) {
2867
resultString = token.func( resultString, token );
2869
if (resultString !== undefined ) {
2872
parseInt(token.value, 10),
2876
line += resultString.split('\n').length - 1;
2880
results.push( result[ 0 ] );
2883
src = src.substring(result[ 0 ].length);
2895
var result = openTag.exec( src );
2898
if ( result !== null ) {
2899
if ( result.index > 0 ) {
2900
var resultString = src.substring(0, result.index);
2902
parseInt(PHP.Constants.T_INLINE_HTML, 10),
2907
line += resultString.split('\n').length - 1;
2909
src = src.substring( result.index );
2916
parseInt(PHP.Constants.T_INLINE_HTML, 10),
2917
src.replace(/^\n/, ""),
2938
PHP.Parser = function ( preprocessedTokens, eval ) {
2940
var yybase = this.yybase,
2941
yydefault = this.yydefault,
2942
yycheck = this.yycheck,
2943
yyaction = this.yyaction,
2945
yygbase = this.yygbase,
2946
yygcheck = this.yygcheck,
2948
yygoto = this.yygoto,
2950
terminals = this.terminals,
2951
translate = this.translate,
2952
yygdefault = this.yygdefault;
2958
this.tokenMap = this.createTokenMap( );
2960
this.dropTokens = {};
2961
this.dropTokens[ PHP.Constants.T_WHITESPACE ] = 1;
2962
this.dropTokens[ PHP.Constants.T_OPEN_TAG ] = 1;
2964
preprocessedTokens.forEach( function( token, index ) {
2965
if ( typeof token === "object" && token[ 0 ] === PHP.Constants.T_OPEN_TAG_WITH_ECHO) {
2967
PHP.Constants.T_OPEN_TAG,
2972
PHP.Constants.T_ECHO,
2977
tokens.push( token );
2980
this.tokens = tokens;
2981
var tokenId = this.TOKEN_NONE;
2982
this.startAttributes = {
2986
this.endAttributes = {};
2987
var attributeStack = [ this.startAttributes ];
2989
var stateStack = [ state ];
3000
if ( yybase[ state ] === 0 ) {
3001
yyn = yydefault[ state ];
3003
if (tokenId === this.TOKEN_NONE ) {
3004
origTokenId = this.getNextToken( );
3005
tokenId = (origTokenId >= 0 && origTokenId < this.TOKEN_MAP_SIZE) ? translate[ origTokenId ] : this.TOKEN_INVALID;
3007
attributeStack[ this.stackPos ] = this.startAttributes;
3010
if (((yyn = yybase[ state ] + tokenId) >= 0
3011
&& yyn < this.YYLAST && yycheck[ yyn ] === tokenId
3012
|| (state < this.YY2TBLSTATE
3013
&& (yyn = yybase[state + this.YYNLSTATES] + tokenId) >= 0
3014
&& yyn < this.YYLAST
3015
&& yycheck[ yyn ] === tokenId))
3016
&& (yyn = yyaction[ yyn ]) !== this.YYDEFAULT ) {
3020
stateStack[ this.stackPos ] = state = yyn;
3021
this.yyastk[ this.stackPos ] = this.tokenValue;
3022
attributeStack[ this.stackPos ] = this.startAttributes;
3023
tokenId = this.TOKEN_NONE;
3025
if (yyn < this.YYNLSTATES)
3027
yyn -= this.YYNLSTATES;
3032
yyn = yydefault[ state ];
3040
} else if (yyn !== this.YYUNEXPECTED ) {
3041
for (var attr in this.endAttributes) {
3042
attributeStack[ this.stackPos - yylen[ yyn ] ][ attr ] = this.endAttributes[ attr ];
3045
this['yyn' + yyn](attributeStack[ this.stackPos - yylen[ yyn ] ]);
3049
this.stackPos -= yylen[ yyn ];
3051
if ((yyp = yygbase[ yyn ] + stateStack[ this.stackPos ]) >= 0
3052
&& yyp < this.YYGLAST
3053
&& yygcheck[ yyp ] === yyn) {
3054
state = yygoto[ yyp ];
3056
state = yygdefault[ yyn ];
3061
stateStack[ this.stackPos ] = state;
3062
this.yyastk[ this.stackPos ] = this.yyval;
3063
attributeStack[ this.stackPos ] = this.startAttributes;
3065
if (eval !== true) {
3069
for (var i = 0; i < this.TOKEN_MAP_SIZE; ++i) {
3070
if ((yyn = yybase[ state ] + i) >= 0 && yyn < this.YYLAST && yycheck[ yyn ] == i
3071
|| state < this.YY2TBLSTATE
3072
&& (yyn = yybase[ state + this.YYNLSTATES] + i)
3073
&& yyn < this.YYLAST && yycheck[ yyn ] == i
3075
if (yyaction[ yyn ] != this.YYUNEXPECTED) {
3076
if (expected.length == 4) {
3081
expected.push( this.terminals[ i ] );
3086
var expectedString = '';
3087
if (expected.length) {
3088
expectedString = ', expecting ' + expected.join(' or ');
3090
throw new PHP.ParseError('syntax error, unexpected ' + terminals[ tokenId ] + expectedString, this.startAttributes['startLine']);
3092
return this.startAttributes['startLine'];
3097
if (state < this.YYNLSTATES)
3099
yyn = state - this.YYNLSTATES;
3104
PHP.ParseError = function( msg, line ) {
3109
PHP.Parser.prototype.MODIFIER_PUBLIC = 1;
3110
PHP.Parser.prototype.MODIFIER_PROTECTED = 2;
3111
PHP.Parser.prototype.MODIFIER_PRIVATE = 4;
3112
PHP.Parser.prototype.MODIFIER_STATIC = 8;
3113
PHP.Parser.prototype.MODIFIER_ABSTRACT = 16;
3114
PHP.Parser.prototype.MODIFIER_FINAL = 32;
3116
PHP.Parser.prototype.getNextToken = function( ) {
3118
this.startAttributes = {};
3119
this.endAttributes = {};
3124
while (this.tokens[++this.pos] !== undefined) {
3125
token = this.tokens[this.pos];
3127
if (typeof token === "string") {
3128
this.startAttributes['startLine'] = this.line;
3129
this.endAttributes['endLine'] = this.line;
3131
this.tokenValue = token;
3132
return token.charCodeAt(0);
3137
this.line += ((tmp = token[ 1 ].match(/\n/g)) === null) ? 0 : tmp.length;
3139
if (PHP.Constants.T_COMMENT === token[0]) {
3141
if (!Array.isArray(this.startAttributes['comments'])) {
3142
this.startAttributes['comments'] = [];
3145
this.startAttributes['comments'].push( {
3151
} else if (PHP.Constants.T_DOC_COMMENT === token[0]) {
3152
this.startAttributes['comments'].push( new PHPParser_Comment_Doc(token[1], token[2]) );
3153
} else if (this.dropTokens[token[0]] === undefined) {
3154
this.tokenValue = token[1];
3155
this.startAttributes['startLine'] = token[2];
3156
this.endAttributes['endLine'] = this.line;
3158
return this.tokenMap[token[0]];
3163
this.startAttributes['startLine'] = this.line;
3167
PHP.Parser.prototype.tokenName = function( token ) {
3168
var constants = ["T_INCLUDE","T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","T_LOGICAL_OR","T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","T_PLUS_EQUAL","T_MINUS_EQUAL","T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL","T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","T_BOOLEAN_OR","T_BOOLEAN_AND","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL","T_IS_SMALLER_OR_EQUAL","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","T_INSTANCEOF","T_INC","T_DEC","T_INT_CAST","T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST","T_UNSET_CAST","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE","T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE","T_NUM_STRING","T_INLINE_HTML","T_CHARACTER","T_BAD_CHARACTER","T_ENCAPSED_AND_WHITESPACE","T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR","T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH","T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_GOTO","T_FUNCTION","T_CONST","T_RETURN","T_TRY","T_CATCH","T_THROW","T_USE","T_INSTEADOF","T_GLOBAL","T_STATIC","T_ABSTRACT","T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY","T_HALT_COMPILER","T_CLASS","T_TRAIT","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR","T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CALLABLE","T_CLASS_C","T_TRAIT_C","T_METHOD_C","T_FUNC_C","T_LINE","T_FILE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","T_CLOSE_TAG","T_WHITESPACE","T_START_HEREDOC","T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM","T_DOUBLE_COLON","T_NAMESPACE","T_NS_C","T_DIR","T_NS_SEPARATOR"];
3169
var current = "UNKNOWN";
3170
constants.some(function( constant ) {
3171
if (PHP.Constants[ constant ] === token) {
3182
PHP.Parser.prototype.createTokenMap = function() {
3186
var T_DOUBLE_COLON = PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM;
3187
for ( i = 256; i < 1000; ++i ) {
3188
if ( T_DOUBLE_COLON === i ) {
3189
tokenMap[ i ] = this.T_PAAMAYIM_NEKUDOTAYIM;
3190
} else if( PHP.Constants.T_OPEN_TAG_WITH_ECHO === i ) {
3191
tokenMap[ i ] = PHP.Constants.T_ECHO;
3192
} else if( PHP.Constants.T_CLOSE_TAG === i ) {
3194
} else if ( 'UNKNOWN' !== (name = this.tokenName( i ) ) ) {
3196
tokenMap[ i ] = this[name];
3202
PHP.Parser.prototype.TOKEN_NONE = -1;
3203
PHP.Parser.prototype.TOKEN_INVALID = 149;
3205
PHP.Parser.prototype.TOKEN_MAP_SIZE = 384;
3207
PHP.Parser.prototype.YYLAST = 913;
3208
PHP.Parser.prototype.YY2TBLSTATE = 328;
3209
PHP.Parser.prototype.YYGLAST = 415;
3210
PHP.Parser.prototype.YYNLSTATES = 544;
3211
PHP.Parser.prototype.YYUNEXPECTED = 32767;
3212
PHP.Parser.prototype.YYDEFAULT = -32766;
3213
PHP.Parser.prototype.YYERRTOK = 256;
3214
PHP.Parser.prototype.T_INCLUDE = 257;
3215
PHP.Parser.prototype.T_INCLUDE_ONCE = 258;
3216
PHP.Parser.prototype.T_EVAL = 259;
3217
PHP.Parser.prototype.T_REQUIRE = 260;
3218
PHP.Parser.prototype.T_REQUIRE_ONCE = 261;
3219
PHP.Parser.prototype.T_LOGICAL_OR = 262;
3220
PHP.Parser.prototype.T_LOGICAL_XOR = 263;
3221
PHP.Parser.prototype.T_LOGICAL_AND = 264;
3222
PHP.Parser.prototype.T_PRINT = 265;
3223
PHP.Parser.prototype.T_PLUS_EQUAL = 266;
3224
PHP.Parser.prototype.T_MINUS_EQUAL = 267;
3225
PHP.Parser.prototype.T_MUL_EQUAL = 268;
3226
PHP.Parser.prototype.T_DIV_EQUAL = 269;
3227
PHP.Parser.prototype.T_CONCAT_EQUAL = 270;
3228
PHP.Parser.prototype.T_MOD_EQUAL = 271;
3229
PHP.Parser.prototype.T_AND_EQUAL = 272;
3230
PHP.Parser.prototype.T_OR_EQUAL = 273;
3231
PHP.Parser.prototype.T_XOR_EQUAL = 274;
3232
PHP.Parser.prototype.T_SL_EQUAL = 275;
3233
PHP.Parser.prototype.T_SR_EQUAL = 276;
3234
PHP.Parser.prototype.T_BOOLEAN_OR = 277;
3235
PHP.Parser.prototype.T_BOOLEAN_AND = 278;
3236
PHP.Parser.prototype.T_IS_EQUAL = 279;
3237
PHP.Parser.prototype.T_IS_NOT_EQUAL = 280;
3238
PHP.Parser.prototype.T_IS_IDENTICAL = 281;
3239
PHP.Parser.prototype.T_IS_NOT_IDENTICAL = 282;
3240
PHP.Parser.prototype.T_IS_SMALLER_OR_EQUAL = 283;
3241
PHP.Parser.prototype.T_IS_GREATER_OR_EQUAL = 284;
3242
PHP.Parser.prototype.T_SL = 285;
3243
PHP.Parser.prototype.T_SR = 286;
3244
PHP.Parser.prototype.T_INSTANCEOF = 287;
3245
PHP.Parser.prototype.T_INC = 288;
3246
PHP.Parser.prototype.T_DEC = 289;
3247
PHP.Parser.prototype.T_INT_CAST = 290;
3248
PHP.Parser.prototype.T_DOUBLE_CAST = 291;
3249
PHP.Parser.prototype.T_STRING_CAST = 292;
3250
PHP.Parser.prototype.T_ARRAY_CAST = 293;
3251
PHP.Parser.prototype.T_OBJECT_CAST = 294;
3252
PHP.Parser.prototype.T_BOOL_CAST = 295;
3253
PHP.Parser.prototype.T_UNSET_CAST = 296;
3254
PHP.Parser.prototype.T_NEW = 297;
3255
PHP.Parser.prototype.T_CLONE = 298;
3256
PHP.Parser.prototype.T_EXIT = 299;
3257
PHP.Parser.prototype.T_IF = 300;
3258
PHP.Parser.prototype.T_ELSEIF = 301;
3259
PHP.Parser.prototype.T_ELSE = 302;
3260
PHP.Parser.prototype.T_ENDIF = 303;
3261
PHP.Parser.prototype.T_LNUMBER = 304;
3262
PHP.Parser.prototype.T_DNUMBER = 305;
3263
PHP.Parser.prototype.T_STRING = 306;
3264
PHP.Parser.prototype.T_STRING_VARNAME = 307;
3265
PHP.Parser.prototype.T_VARIABLE = 308;
3266
PHP.Parser.prototype.T_NUM_STRING = 309;
3267
PHP.Parser.prototype.T_INLINE_HTML = 310;
3268
PHP.Parser.prototype.T_CHARACTER = 311;
3269
PHP.Parser.prototype.T_BAD_CHARACTER = 312;
3270
PHP.Parser.prototype.T_ENCAPSED_AND_WHITESPACE = 313;
3271
PHP.Parser.prototype.T_CONSTANT_ENCAPSED_STRING = 314;
3272
PHP.Parser.prototype.T_ECHO = 315;
3273
PHP.Parser.prototype.T_DO = 316;
3274
PHP.Parser.prototype.T_WHILE = 317;
3275
PHP.Parser.prototype.T_ENDWHILE = 318;
3276
PHP.Parser.prototype.T_FOR = 319;
3277
PHP.Parser.prototype.T_ENDFOR = 320;
3278
PHP.Parser.prototype.T_FOREACH = 321;
3279
PHP.Parser.prototype.T_ENDFOREACH = 322;
3280
PHP.Parser.prototype.T_DECLARE = 323;
3281
PHP.Parser.prototype.T_ENDDECLARE = 324;
3282
PHP.Parser.prototype.T_AS = 325;
3283
PHP.Parser.prototype.T_SWITCH = 326;
3284
PHP.Parser.prototype.T_ENDSWITCH = 327;
3285
PHP.Parser.prototype.T_CASE = 328;
3286
PHP.Parser.prototype.T_DEFAULT = 329;
3287
PHP.Parser.prototype.T_BREAK = 330;
3288
PHP.Parser.prototype.T_CONTINUE = 331;
3289
PHP.Parser.prototype.T_GOTO = 332;
3290
PHP.Parser.prototype.T_FUNCTION = 333;
3291
PHP.Parser.prototype.T_CONST = 334;
3292
PHP.Parser.prototype.T_RETURN = 335;
3293
PHP.Parser.prototype.T_TRY = 336;
3294
PHP.Parser.prototype.T_CATCH = 337;
3295
PHP.Parser.prototype.T_THROW = 338;
3296
PHP.Parser.prototype.T_USE = 339;
3297
PHP.Parser.prototype.T_INSTEADOF = 340;
3298
PHP.Parser.prototype.T_GLOBAL = 341;
3299
PHP.Parser.prototype.T_STATIC = 342;
3300
PHP.Parser.prototype.T_ABSTRACT = 343;
3301
PHP.Parser.prototype.T_FINAL = 344;
3302
PHP.Parser.prototype.T_PRIVATE = 345;
3303
PHP.Parser.prototype.T_PROTECTED = 346;
3304
PHP.Parser.prototype.T_PUBLIC = 347;
3305
PHP.Parser.prototype.T_VAR = 348;
3306
PHP.Parser.prototype.T_UNSET = 349;
3307
PHP.Parser.prototype.T_ISSET = 350;
3308
PHP.Parser.prototype.T_EMPTY = 351;
3309
PHP.Parser.prototype.T_HALT_COMPILER = 352;
3310
PHP.Parser.prototype.T_CLASS = 353;
3311
PHP.Parser.prototype.T_TRAIT = 354;
3312
PHP.Parser.prototype.T_INTERFACE = 355;
3313
PHP.Parser.prototype.T_EXTENDS = 356;
3314
PHP.Parser.prototype.T_IMPLEMENTS = 357;
3315
PHP.Parser.prototype.T_OBJECT_OPERATOR = 358;
3316
PHP.Parser.prototype.T_DOUBLE_ARROW = 359;
3317
PHP.Parser.prototype.T_LIST = 360;
3318
PHP.Parser.prototype.T_ARRAY = 361;
3319
PHP.Parser.prototype.T_CALLABLE = 362;
3320
PHP.Parser.prototype.T_CLASS_C = 363;
3321
PHP.Parser.prototype.T_TRAIT_C = 364;
3322
PHP.Parser.prototype.T_METHOD_C = 365;
3323
PHP.Parser.prototype.T_FUNC_C = 366;
3324
PHP.Parser.prototype.T_LINE = 367;
3325
PHP.Parser.prototype.T_FILE = 368;
3326
PHP.Parser.prototype.T_COMMENT = 369;
3327
PHP.Parser.prototype.T_DOC_COMMENT = 370;
3328
PHP.Parser.prototype.T_OPEN_TAG = 371;
3329
PHP.Parser.prototype.T_OPEN_TAG_WITH_ECHO = 372;
3330
PHP.Parser.prototype.T_CLOSE_TAG = 373;
3331
PHP.Parser.prototype.T_WHITESPACE = 374;
3332
PHP.Parser.prototype.T_START_HEREDOC = 375;
3333
PHP.Parser.prototype.T_END_HEREDOC = 376;
3334
PHP.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES = 377;
3335
PHP.Parser.prototype.T_CURLY_OPEN = 378;
3336
PHP.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM = 379;
3337
PHP.Parser.prototype.T_NAMESPACE = 380;
3338
PHP.Parser.prototype.T_NS_C = 381;
3339
PHP.Parser.prototype.T_DIR = 382;
3340
PHP.Parser.prototype.T_NS_SEPARATOR = 383;
3341
PHP.Parser.prototype.terminals = [
3376
"T_IS_NOT_IDENTICAL",
3378
"T_IS_SMALLER_OR_EQUAL",
3380
"T_IS_GREATER_OR_EQUAL",
3417
"T_ENCAPSED_AND_WHITESPACE",
3418
"T_CONSTANT_ENCAPSED_STRING",
3462
"T_OBJECT_OPERATOR",
3475
"T_DOLLAR_OPEN_CURLY_BRACES",
3477
"T_PAAMAYIM_NEKUDOTAYIM",
3493
PHP.Parser.prototype.translate = [
3494
0, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3495
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3496
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3497
149, 149, 149, 47, 148, 149, 145, 46, 30, 149,
3498
143, 144, 44, 41, 7, 42, 43, 45, 149, 149,
3499
149, 149, 149, 149, 149, 149, 149, 149, 25, 140,
3500
35, 12, 37, 24, 59, 149, 149, 149, 149, 149,
3501
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3502
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3503
149, 60, 149, 146, 29, 149, 147, 149, 149, 149,
3504
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3505
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3506
149, 149, 149, 141, 28, 142, 49, 149, 149, 149,
3507
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3508
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3509
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3510
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3511
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3512
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3513
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3514
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3515
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3516
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3517
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3518
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
3519
149, 149, 149, 149, 149, 149, 1, 2, 3, 4,
3520
5, 6, 8, 9, 10, 11, 13, 14, 15, 16,
3521
17, 18, 19, 20, 21, 22, 23, 26, 27, 31,
3522
32, 33, 34, 36, 38, 39, 40, 48, 50, 51,
3523
52, 53, 54, 55, 56, 57, 58, 61, 62, 63,
3524
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3525
74, 149, 149, 75, 76, 77, 78, 79, 80, 81,
3526
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3527
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
3528
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
3529
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3530
122, 123, 124, 125, 126, 127, 128, 129, 130, 149,
3531
149, 149, 149, 149, 149, 131, 132, 133, 134, 135,
3535
PHP.Parser.prototype.yyaction = [
3536
61, 62, 363, 63, 64,-32766,-32766,-32766, 509, 65,
3537
708, 709, 710, 707, 706, 705,-32766,-32766,-32766,-32766,
3538
-32766,-32766, 132,-32766,-32766,-32766,-32766,-32766,-32767,-32767,
3539
-32767,-32767,-32766, 335,-32766,-32766,-32766,-32766,-32766, 66,
3540
67, 351, 663, 664, 40, 68, 548, 69, 232, 233,
3541
70, 71, 72, 73, 74, 75, 76, 77, 30, 246,
3542
78, 336, 364, -112, 0, 469, 833, 834, 365, 641,
3543
890, 436, 590, 41, 835, 53, 27, 366, 294, 367,
3544
687, 368, 921, 369, 923, 922, 370,-32766,-32766,-32766,
3545
42, 43, 371, 339, 126, 44, 372, 337, 79, 297,
3546
349, 292, 293,-32766, 918,-32766,-32766, 373, 374, 375,
3547
376, 377, 391, 199, 361, 338, 573, 613, 378, 379,
3548
380, 381, 845, 839, 840, 841, 842, 836, 837, 253,
3549
-32766, 87, 88, 89, 391, 843, 838, 338, 597, 519,
3550
128, 80, 129, 273, 332, 257, 261, 47, 673, 90,
3551
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
3552
101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
3553
799, 247, 884, 108, 109, 110, 226, 247, 21,-32766,
3554
310,-32766,-32766,-32766, 642, 548,-32766,-32766,-32766,-32766,
3555
56, 353,-32766,-32766,-32766, 55,-32766,-32766,-32766,-32766,
3556
-32766, 58,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,
3557
-32766, 557,-32766,-32766, 518,-32766, 548, 890,-32766, 390,
3558
-32766, 228, 252,-32766,-32766,-32766,-32766,-32766, 275,-32766,
3559
234,-32766, 587, 588,-32766,-32766,-32766,-32766,-32766,-32766,
3560
-32766, 46, 236,-32766,-32766, 281,-32766, 682, 348,-32766,
3561
390,-32766, 346, 333, 521,-32766,-32766,-32766, 271, 911,
3562
262, 237, 446, 911,-32766, 894, 59, 700, 358, 135,
3563
548, 123, 538, 35,-32766, 333, 122,-32766,-32766,-32766,
3564
271,-32766, 124,-32766, 692,-32766,-32766,-32766,-32766, 700,
3565
273, 22,-32766,-32766,-32766,-32766, 239,-32766,-32766, 612,
3566
-32766, 548, 134,-32766, 390,-32766, 462, 354,-32766,-32766,
3567
-32766,-32766,-32766, 227,-32766, 238,-32766, 845, 542,-32766,
3568
856, 611, 200,-32766,-32766,-32766, 259, 280,-32766,-32766,
3569
201,-32766, 855, 129,-32766, 390, 130, 202, 333, 206,
3570
-32766,-32766,-32766, 271,-32766,-32766,-32766, 125, 601,-32766,
3571
136, 299, 700, 489, 28, 548, 105, 106, 107,-32766,
3572
498, 499,-32766,-32766,-32766, 207,-32766, 133,-32766, 525,
3573
-32766,-32766,-32766,-32766, 663, 664, 527,-32766,-32766,-32766,
3574
-32766, 528,-32766,-32766, 610,-32766, 548, 427,-32766, 390,
3575
-32766, 532, 539,-32766,-32766,-32766,-32766,-32766, 240,-32766,
3576
247,-32766, 697, 543,-32766, 554, 523, 608,-32766,-32766,
3577
-32766, 686, 535,-32766,-32766, 54,-32766, 57, 60,-32766,
3578
390, 246, -155, 278, 345,-32766,-32766,-32766, 506, 347,
3579
-152, 471, 402, 403,-32766, 405, 404, 272, 493, 416,
3580
548, 318, 417, 505,-32766, 517, 548,-32766,-32766,-32766,
3581
549,-32766, 562,-32766, 916,-32766,-32766,-32766,-32766, 564,
3582
826, 848,-32766,-32766,-32766,-32766, 694,-32766,-32766, 485,
3583
-32766, 548, 487,-32766, 390,-32766, 504, 802,-32766,-32766,
3584
-32766,-32766,-32766, 279,-32766, 911,-32766, 502, 492,-32766,
3585
413, 483, 269,-32766,-32766,-32766, 243, 337,-32766,-32766,
3586
418,-32766, 454, 229,-32766, 390, 274, 373, 374, 344,
3587
-32766,-32766,-32766, 360, 614,-32766, 573, 613, 378, 379,
3588
-274, 548, 615, -332, 844,-32766, 258, 51,-32766,-32766,
3589
-32766, 270,-32766, 346,-32766, 52,-32766, 260, 0,-32766,
3590
-333,-32766,-32766,-32766,-32766,-32766,-32766, 205,-32766,-32766,
3591
49,-32766, 548, 424,-32766, 390,-32766, -266, 264,-32766,
3592
-32766,-32766,-32766,-32766, 409,-32766, 343,-32766, 265, 312,
3593
-32766, 470, 513, -275,-32766,-32766,-32766, 920, 337,-32766,
3594
-32766, 530,-32766, 531, 600,-32766, 390, 592, 373, 374,
3595
578, 581,-32766,-32766, 644, 629,-32766, 573, 613, 378,
3596
379, 635, 548, 636, 576, 627,-32766, 625, 693,-32766,
3597
-32766,-32766, 691,-32766, 591,-32766, 582,-32766, 203, 204,
3598
-32766, 584, 583,-32766,-32766,-32766,-32766, 586, 599,-32766,
3599
-32766, 589,-32766, 690, 558,-32766, 390, 197, 683, 919,
3600
86, 520, 522,-32766, 524, 833, 834, 529, 533,-32766,
3601
534, 537, 541, 835, 48, 111, 112, 113, 114, 115,
3602
116, 117, 118, 119, 120, 121, 127, 31, 633, 337,
3603
330, 634, 585,-32766, 32, 291, 337, 330, 478, 373,
3604
374, 917, 291, 891, 889, 875, 373, 374, 553, 613,
3605
378, 379, 737, 739, 887, 553, 613, 378, 379, 824,
3606
451, 675, 839, 840, 841, 842, 836, 837, 320, 895,
3607
277, 885, 23, 33, 843, 838, 556, 277, 337, 330,
3608
-32766, 34,-32766, 555, 291, 36, 37, 38, 373, 374,
3609
39, 45, 50, 81, 82, 83, 84, 553, 613, 378,
3610
379,-32767,-32767,-32767,-32767, 103, 104, 105, 106, 107,
3611
337, 85, 131, 137, 337, 138, 198, 224, 225, 277,
3612
373, 374, -332, 230, 373, 374, 24, 337, 231, 573,
3613
613, 378, 379, 573, 613, 378, 379, 373, 374, 235,
3614
248, 249, 250, 337, 251, 0, 573, 613, 378, 379,
3615
276, 329, 331, 373, 374,-32766, 337, 574, 490, 792,
3616
337, 609, 573, 613, 378, 379, 373, 374, 25, 300,
3617
373, 374, 319, 337, 795, 573, 613, 378, 379, 573,
3618
613, 378, 379, 373, 374, 516, 355, 359, 445, 482,
3619
796, 507, 573, 613, 378, 379, 508, 548, 337, 890,
3620
775, 791, 337, 604, 803, 808, 806, 698, 373, 374,
3621
888, 807, 373, 374,-32766,-32766,-32766, 573, 613, 378,
3622
379, 573, 613, 378, 379, 873, 832, 804, 872, 851,
3623
-32766, 809,-32766,-32766,-32766,-32766, 805, 20, 26, 29,
3624
298, 480, 515, 770, 778, 827, 457, 0, 900, 455,
3625
774, 0, 0, 0, 874, 870, 886, 823, 915, 852,
3626
869, 488, 0, 391, 793, 0, 338, 0, 0, 0,
3630
PHP.Parser.prototype.yycheck = [
3631
2, 3, 4, 5, 6, 8, 9, 10, 70, 11,
3632
104, 105, 106, 107, 108, 109, 8, 9, 10, 8,
3633
9, 24, 60, 26, 27, 28, 29, 30, 31, 32,
3634
33, 34, 24, 7, 26, 27, 28, 29, 30, 41,
3635
42, 7, 123, 124, 7, 47, 70, 49, 50, 51,
3636
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
3637
62, 63, 64, 144, 0, 75, 68, 69, 70, 25,
3638
72, 70, 74, 7, 76, 77, 78, 79, 7, 81,
3639
142, 83, 70, 85, 72, 73, 88, 8, 9, 10,
3640
92, 93, 94, 95, 7, 97, 98, 95, 100, 7,
3641
7, 103, 104, 24, 142, 26, 27, 105, 106, 111,
3642
112, 113, 136, 7, 7, 139, 114, 115, 116, 117,
3643
122, 123, 132, 125, 126, 127, 128, 129, 130, 131,
3644
8, 8, 9, 10, 136, 137, 138, 139, 140, 141,
3645
25, 143, 141, 145, 142, 147, 148, 24, 72, 26,
3646
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3647
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
3648
144, 48, 72, 44, 45, 46, 30, 48, 144, 64,
3649
72, 8, 9, 10, 140, 70, 8, 9, 10, 74,
3650
60, 25, 77, 78, 79, 60, 81, 24, 83, 26,
3651
85, 60, 24, 88, 26, 27, 28, 92, 93, 94,
3652
64, 140, 97, 98, 70, 100, 70, 72, 103, 104,
3653
74, 145, 7, 77, 78, 79, 111, 81, 7, 83,
3654
30, 85, 140, 140, 88, 8, 9, 10, 92, 93,
3655
94, 133, 134, 97, 98, 145, 100, 140, 7, 103,
3656
104, 24, 139, 96, 141, 140, 141, 111, 101, 75,
3657
75, 30, 70, 75, 64, 70, 60, 110, 121, 12,
3658
70, 141, 25, 143, 74, 96, 141, 77, 78, 79,
3659
101, 81, 141, 83, 140, 85, 140, 141, 88, 110,
3660
145, 144, 92, 93, 94, 64, 7, 97, 98, 142,
3661
100, 70, 141, 103, 104, 74, 145, 141, 77, 78,
3662
79, 111, 81, 7, 83, 30, 85, 132, 25, 88,
3663
132, 142, 12, 92, 93, 94, 120, 60, 97, 98,
3664
12, 100, 148, 141, 103, 104, 141, 12, 96, 12,
3665
140, 141, 111, 101, 8, 9, 10, 141, 25, 64,
3666
90, 91, 110, 65, 66, 70, 41, 42, 43, 74,
3667
65, 66, 77, 78, 79, 12, 81, 25, 83, 25,
3668
85, 140, 141, 88, 123, 124, 25, 92, 93, 94,
3669
64, 25, 97, 98, 142, 100, 70, 120, 103, 104,
3670
74, 25, 25, 77, 78, 79, 111, 81, 30, 83,
3671
48, 85, 140, 141, 88, 140, 141, 30, 92, 93,
3672
94, 140, 141, 97, 98, 60, 100, 60, 60, 103,
3673
104, 61, 72, 75, 70, 140, 141, 111, 67, 70,
3674
87, 99, 70, 70, 64, 70, 72, 102, 89, 70,
3675
70, 71, 70, 70, 74, 70, 70, 77, 78, 79,
3676
70, 81, 70, 83, 70, 85, 140, 141, 88, 70,
3677
144, 70, 92, 93, 94, 64, 70, 97, 98, 72,
3678
100, 70, 72, 103, 104, 74, 72, 72, 77, 78,
3679
79, 111, 81, 75, 83, 75, 85, 89, 86, 88,
3680
79, 101, 118, 92, 93, 94, 87, 95, 97, 98,
3681
87, 100, 87, 87, 103, 104, 118, 105, 106, 95,
3682
140, 141, 111, 95, 115, 64, 114, 115, 116, 117,
3683
135, 70, 115, 120, 132, 74, 120, 140, 77, 78,
3684
79, 119, 81, 139, 83, 140, 85, 120, -1, 88,
3685
120, 140, 141, 92, 93, 94, 64, 121, 97, 98,
3686
121, 100, 70, 122, 103, 104, 74, 135, 135, 77,
3687
78, 79, 111, 81, 139, 83, 139, 85, 135, 135,
3688
88, 135, 135, 135, 92, 93, 94, 142, 95, 97,
3689
98, 140, 100, 140, 140, 103, 104, 140, 105, 106,
3690
140, 140, 141, 111, 140, 140, 64, 114, 115, 116,
3691
117, 140, 70, 140, 140, 140, 74, 140, 140, 77,
3692
78, 79, 140, 81, 140, 83, 140, 85, 41, 42,
3693
88, 140, 140, 141, 92, 93, 94, 140, 140, 97,
3694
98, 140, 100, 140, 140, 103, 104, 60, 140, 142,
3695
141, 141, 141, 111, 141, 68, 69, 141, 141, 72,
3696
141, 141, 141, 76, 12, 13, 14, 15, 16, 17,
3697
18, 19, 20, 21, 22, 23, 141, 143, 142, 95,
3698
96, 142, 140, 141, 143, 101, 95, 96, 142, 105,
3699
106, 142, 101, 142, 142, 142, 105, 106, 114, 115,
3700
116, 117, 50, 51, 142, 114, 115, 116, 117, 142,
3701
123, 142, 125, 126, 127, 128, 129, 130, 131, 142,
3702
136, 142, 144, 143, 137, 138, 142, 136, 95, 96,
3703
143, 143, 145, 142, 101, 143, 143, 143, 105, 106,
3704
143, 143, 143, 143, 143, 143, 143, 114, 115, 116,
3705
117, 35, 36, 37, 38, 39, 40, 41, 42, 43,
3706
95, 143, 143, 143, 95, 143, 143, 143, 143, 136,
3707
105, 106, 120, 143, 105, 106, 144, 95, 143, 114,
3708
115, 116, 117, 114, 115, 116, 117, 105, 106, 143,
3709
143, 143, 143, 95, 143, -1, 114, 115, 116, 117,
3710
143, 143, 143, 105, 106, 143, 95, 142, 80, 146,
3711
95, 142, 114, 115, 116, 117, 105, 106, 144, 144,
3712
105, 106, 144, 95, 142, 114, 115, 116, 117, 114,
3713
115, 116, 117, 105, 106, 82, 144, 144, 144, 144,
3714
142, 84, 114, 115, 116, 117, 144, 70, 95, 72,
3715
144, 144, 95, 142, 144, 146, 144, 142, 105, 106,
3716
146, 144, 105, 106, 8, 9, 10, 114, 115, 116,
3717
117, 114, 115, 116, 117, 144, 144, 144, 144, 144,
3718
24, 104, 26, 27, 28, 29, 144, 144, 144, 144,
3719
144, 144, 144, 144, 144, 144, 144, -1, 144, 144,
3720
144, -1, -1, -1, 146, 146, 146, 146, 146, 146,
3721
146, 146, -1, 136, 147, -1, 139, -1, -1, -1,
3725
PHP.Parser.prototype.yybase = [
3726
0, 574, 581, 623, 655, 2, 718, 402, 747, 659,
3727
672, 688, 743, 701, 705, 483, 483, 483, 483, 483,
3728
351, 356, 366, 366, 367, 366, 344, -2, -2, -2,
3729
200, 200, 231, 231, 231, 231, 231, 231, 231, 231,
3730
200, 231, 451, 482, 532, 316, 370, 115, 146, 285,
3731
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3732
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3733
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3734
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3735
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3736
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3737
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3738
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
3739
401, 401, 401, 401, 401, 401, 401, 401, 401, 44,
3740
474, 429, 476, 481, 487, 488, 739, 740, 741, 734,
3741
733, 416, 736, 539, 541, 342, 542, 543, 552, 557,
3742
559, 536, 567, 737, 755, 569, 735, 738, 123, 123,
3743
123, 123, 123, 123, 123, 123, 123, 122, 11, 336,
3744
336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
3745
336, 336, 336, 336, 227, 227, 173, 577, 577, 577,
3746
577, 577, 577, 577, 577, 577, 577, 577, 79, 178,
3747
846, 8, -3, -3, -3, -3, 642, 706, 706, 706,
3748
706, 157, 179, 242, 431, 431, 360, 431, 525, 368,
3749
767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
3750
767, 767, 350, 375, 315, 315, 652, 652, -81, -81,
3751
-81, -81, 251, 185, 188, 184, -62, 348, 195, 195,
3752
195, 408, 392, 410, 1, 192, 129, 129, 129, -24,
3753
-24, -24, -24, 499, -24, -24, -24, 113, 108, 108,
3754
12, 161, 349, 526, 271, 398, 529, 438, 130, 206,
3755
265, 427, 76, 414, 427, 288, 295, 76, 166, 44,
3756
262, 422, 141, 491, 372, 494, 413, 71, 92, 93,
3757
267, 135, 100, 34, 415, 745, 746, 742, -38, 420,
3758
-10, 135, 147, 744, 498, 107, 26, 493, 144, 377,
3759
363, 369, 332, 363, 400, 377, 588, 377, 376, 377,
3760
360, 37, 582, 376, 377, 374, 376, 388, 363, 364,
3761
412, 369, 377, 441, 443, 390, 106, 332, 377, 390,
3762
377, 400, 64, 590, 591, 323, 592, 589, 593, 649,
3763
608, 362, 500, 399, 407, 620, 625, 636, 365, 354,
3764
614, 524, 425, 359, 355, 423, 570, 578, 357, 406,
3765
414, 394, 352, 403, 531, 433, 403, 653, 434, 385,
3766
417, 411, 444, 310, 318, 501, 425, 668, 757, 380,
3767
637, 684, 403, 609, 387, 87, 325, 638, 382, 403,
3768
639, 403, 696, 503, 615, 403, 697, 384, 435, 425,
3769
352, 352, 352, 700, 66, 699, 583, 702, 707, 704,
3770
748, 721, 749, 584, 750, 358, 583, 722, 751, 682,
3771
215, 613, 422, 436, 389, 447, 221, 257, 752, 403,
3772
403, 506, 499, 403, 395, 685, 397, 426, 753, 392,
3773
391, 647, 683, 403, 418, 754, 221, 723, 587, 724,
3774
450, 568, 507, 648, 509, 327, 725, 353, 497, 610,
3775
454, 622, 455, 461, 404, 510, 373, 732, 612, 247,
3776
361, 664, 463, 405, 692, 641, 464, 465, 511, 343,
3777
437, 335, 409, 396, 665, 293, 467, 468, 472, 0,
3778
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3779
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3780
0, 0, 0, 0, 0, -2, -2, -2, -2, -2,
3781
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3782
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3783
-2, 0, 0, 0, -2, -2, -2, -2, -2, -2,
3784
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3785
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3786
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3787
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3788
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3789
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3790
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3791
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3792
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3793
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
3794
-2, -2, -2, 123, 123, 123, 123, 123, 123, 123,
3795
123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
3796
123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
3797
123, 123, 0, 0, 0, 0, 0, 0, 0, 0,
3798
0, 123, 123, 123, 123, 123, 123, 123, 123, 123,
3799
123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
3800
123, 767, 767, 767, 767, 767, 767, 767, 767, 767,
3801
767, 767, 123, 123, 123, 123, 123, 123, 123, 123,
3802
0, 129, 129, 129, 129, -94, -94, -94, 767, 767,
3803
767, 767, 767, 767, 0, 0, 0, 0, 0, 0,
3804
0, 0, 0, 0, 0, 0, -94, -94, 129, 129,
3805
767, 767, -24, -24, -24, -24, -24, 108, 108, 108,
3806
-24, 108, 145, 145, 145, 108, 108, 108, 100, 100,
3807
0, 0, 0, 0, 0, 0, 0, 145, 0, 0,
3808
0, 376, 0, 0, 0, 145, 260, 260, 221, 260,
3809
260, 135, 0, 0, 425, 376, 0, 364, 376, 0,
3810
0, 0, 0, 0, 0, 531, 0, 87, 637, 241,
3811
425, 0, 0, 0, 0, 0, 0, 0, 425, 289,
3812
289, 306, 0, 358, 0, 0, 0, 306, 241, 0,
3816
PHP.Parser.prototype.yydefault = [
3817
3,32767,32767, 1,32767,32767,32767,32767,32767,32767,
3818
32767,32767,32767,32767,32767, 104, 96, 110, 95, 106,
3819
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3820
358, 358, 122, 122, 122, 122, 122, 122, 122, 122,
3821
316,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3822
173, 173, 173,32767, 348, 348, 348, 348, 348, 348,
3823
348,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3824
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3825
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3826
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3827
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3828
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3829
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3830
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3831
32767, 363,32767,32767,32767,32767,32767,32767,32767,32767,
3832
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3833
32767,32767,32767,32767,32767,32767,32767,32767, 232, 233,
3834
235, 236, 172, 125, 349, 362, 171, 199, 201, 250,
3835
200, 177, 182, 183, 184, 185, 186, 187, 188, 189,
3836
190, 191, 192, 176, 229, 228, 197, 313, 313, 316,
3837
32767,32767,32767,32767,32767,32767,32767,32767, 198, 202,
3838
204, 203, 219, 220, 217, 218, 175, 221, 222, 223,
3839
224, 157, 157, 157, 357, 357,32767, 357,32767,32767,
3840
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3841
32767,32767, 158,32767, 211, 212, 276, 276, 117, 117,
3842
117, 117, 117,32767,32767,32767,32767, 284,32767,32767,
3843
32767,32767,32767, 286,32767,32767, 206, 207, 205,32767,
3844
32767,32767,32767,32767,32767,32767,32767,32767, 285,32767,
3845
32767,32767,32767,32767,32767,32767,32767, 334, 321, 272,
3846
32767,32767,32767, 265,32767, 107, 109,32767,32767,32767,
3847
32767, 302, 339,32767,32767,32767, 17,32767,32767,32767,
3848
370, 334,32767,32767, 19,32767,32767,32767,32767, 227,
3849
32767, 338, 332,32767,32767,32767,32767,32767,32767, 63,
3850
32767,32767,32767,32767,32767, 63, 281, 63,32767, 63,
3851
32767, 315, 287,32767, 63, 74,32767, 72,32767,32767,
3852
76,32767, 63, 93, 93, 254, 315, 54, 63, 254,
3853
63,32767,32767,32767,32767, 4,32767,32767,32767,32767,
3854
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3855
32767,32767, 267,32767, 323,32767, 337, 336, 324,32767,
3856
265,32767, 215, 194, 266,32767, 196,32767,32767, 270,
3857
273,32767,32767,32767, 134,32767, 268, 180,32767,32767,
3858
32767,32767, 365,32767,32767, 174,32767,32767,32767, 130,
3859
32767, 61, 332,32767,32767, 355,32767,32767, 332, 269,
3860
208, 209, 210,32767, 121,32767, 310,32767,32767,32767,
3861
32767,32767,32767, 327,32767, 333,32767,32767,32767,32767,
3862
111,32767, 302,32767,32767,32767, 75,32767,32767, 178,
3863
126,32767,32767, 364,32767,32767,32767, 320,32767,32767,
3864
32767,32767,32767, 62,32767,32767, 77,32767,32767,32767,
3865
32767, 332,32767,32767,32767, 115,32767, 169,32767,32767,
3866
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
3867
32767, 332,32767,32767,32767,32767,32767,32767,32767, 4,
3868
32767, 151,32767,32767,32767,32767,32767,32767,32767, 25,
3869
25, 3, 137, 3, 137, 25, 101, 25, 25, 137,
3870
93, 93, 25, 25, 25, 144, 25, 25, 25, 25,
3874
PHP.Parser.prototype.yygoto = [
3875
141, 141, 173, 173, 173, 173, 173, 173, 173, 173,
3876
141, 173, 142, 143, 144, 148, 153, 155, 181, 175,
3877
172, 172, 172, 172, 174, 174, 174, 174, 174, 174,
3878
174, 168, 169, 170, 171, 179, 757, 758, 392, 760,
3879
781, 782, 783, 784, 785, 786, 787, 789, 725, 145,
3880
146, 147, 149, 150, 151, 152, 154, 177, 178, 180,
3881
196, 208, 209, 210, 211, 212, 213, 214, 215, 217,
3882
218, 219, 220, 244, 245, 266, 267, 268, 430, 431,
3883
432, 182, 183, 184, 185, 186, 187, 188, 189, 190,
3884
191, 192, 156, 157, 158, 159, 176, 160, 194, 161,
3885
162, 163, 164, 195, 165, 193, 139, 166, 167, 452,
3886
452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
3887
453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
3888
453, 551, 551, 551, 464, 491, 394, 394, 394, 394,
3889
394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
3890
394, 394, 394, 394, 407, 552, 552, 552, 810, 810,
3891
662, 662, 662, 662, 662, 594, 283, 595, 510, 399,
3892
399, 567, 679, 632, 849, 850, 863, 660, 714, 426,
3893
222, 622, 622, 622, 622, 223, 617, 623, 494, 395,
3894
395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
3895
395, 395, 395, 395, 395, 395, 395, 465, 472, 514,
3896
904, 398, 398, 425, 425, 459, 425, 419, 322, 421,
3897
421, 393, 396, 412, 422, 428, 460, 463, 473, 481,
3898
501, 5, 476, 284, 327, 1, 15, 2, 6, 7,
3899
550, 550, 550, 8, 9, 10, 668, 16, 11, 17,
3900
12, 18, 13, 19, 14, 704, 328, 881, 881, 643,
3901
628, 626, 626, 624, 626, 526, 401, 652, 647, 847,
3902
847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
3903
437, 438, 441, 447, 477, 479, 497, 290, 910, 910,
3904
400, 400, 486, 880, 880, 263, 913, 910, 303, 255,
3905
723, 306, 822, 821, 306, 896, 896, 896, 861, 304,
3906
323, 410, 913, 913, 897, 316, 420, 769, 658, 559,
3907
879, 671, 536, 324, 466, 565, 311, 311, 311, 801,
3908
241, 676, 496, 439, 440, 442, 444, 448, 475, 631,
3909
858, 311, 285, 286, 603, 495, 712, 0, 406, 321,
3910
0, 0, 0, 314, 0, 0, 429, 0, 0, 0,
3911
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3912
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3913
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3914
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3915
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3919
PHP.Parser.prototype.yygcheck = [
3920
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3921
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3922
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3923
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3924
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3925
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3926
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3927
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3928
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3929
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
3930
15, 15, 15, 15, 15, 15, 15, 15, 15, 35,
3931
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
3932
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
3933
86, 6, 6, 6, 21, 21, 35, 35, 35, 35,
3934
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
3935
35, 35, 35, 35, 71, 7, 7, 7, 35, 35,
3936
35, 35, 35, 35, 35, 29, 44, 29, 35, 86,
3937
86, 12, 12, 12, 12, 12, 12, 12, 12, 75,
3938
40, 35, 35, 35, 35, 40, 35, 35, 35, 82,
3939
82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
3940
82, 82, 82, 82, 82, 82, 82, 36, 36, 36,
3941
104, 82, 82, 28, 28, 28, 28, 28, 28, 28,
3942
28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
3943
28, 13, 42, 42, 42, 2, 13, 2, 13, 13,
3944
5, 5, 5, 13, 13, 13, 54, 13, 13, 13,
3945
13, 13, 13, 13, 13, 67, 67, 83, 83, 5,
3946
5, 5, 5, 5, 5, 5, 5, 5, 5, 93,
3947
93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
3948
52, 52, 52, 52, 52, 52, 52, 4, 105, 105,
3949
89, 89, 94, 84, 84, 92, 105, 105, 26, 92,
3950
71, 4, 91, 91, 4, 84, 84, 84, 97, 30,
3951
70, 30, 105, 105, 102, 27, 30, 72, 50, 10,
3952
84, 55, 46, 9, 30, 11, 90, 90, 90, 80,
3953
30, 56, 30, 85, 85, 85, 85, 85, 85, 43,
3954
96, 90, 44, 44, 34, 77, 69, -1, 4, 90,
3955
-1, -1, -1, 4, -1, -1, 4, -1, -1, -1,
3956
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3957
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3958
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3959
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3960
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3964
PHP.Parser.prototype.yygbase = [
3965
0, 0, -286, 0, 10, 239, 130, 154, 0, -10,
3966
25, -23, -29, -289, 0, -30, 0, 0, 0, 0,
3967
0, 83, 0, 0, 0, 0, 245, 84, -11, 142,
3968
-28, 0, 0, 0, -13, -88, -42, 0, 0, 0,
3969
-344, 0, -38, -12, -188, 0, 23, 0, 0, 0,
3970
66, 0, 247, 0, 205, 24, -18, 0, 0, 0,
3971
0, 0, 0, 0, 0, 0, 0, 13, 0, -15,
3972
85, 74, 70, 0, 0, 148, 0, -14, 0, 0,
3973
-6, 0, -35, 11, 47, 278, -77, 0, 0, 44,
3974
68, 43, 38, 72, 94, 0, -16, 109, 0, 0,
3975
0, 0, 87, 0, 170, 34, 0
3978
PHP.Parser.prototype.yygdefault = [
3979
-32768, 362, 3, 546, 382, 570, 571, 572, 307, 305,
3980
560, 566, 467, 4, 568, 140, 295, 575, 296, 500,
3981
577, 414, 579, 580, 308, 309, 415, 315, 216, 593,
3982
503, 313, 596, 357, 602, 301, 449, 383, 350, 461,
3983
221, 423, 456, 630, 282, 638, 540, 646, 649, 450,
3984
657, 352, 433, 434, 667, 672, 677, 680, 334, 325,
3985
474, 684, 685, 256, 689, 511, 512, 703, 242, 711,
3986
317, 724, 342, 788, 790, 397, 408, 484, 797, 326,
3987
800, 384, 385, 386, 387, 435, 818, 815, 289, 866,
3988
287, 443, 254, 853, 468, 356, 903, 862, 288, 388,
3989
389, 302, 898, 341, 905, 912, 458
3992
PHP.Parser.prototype.yylhs = [
3993
0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
3994
3, 3, 3, 3, 3, 8, 8, 10, 10, 10,
3995
10, 9, 9, 11, 13, 13, 14, 14, 14, 14,
3996
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3997
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3998
5, 5, 5, 5, 5, 5, 5, 5, 33, 33,
3999
34, 27, 27, 30, 30, 6, 7, 7, 7, 37,
4000
37, 37, 38, 38, 41, 41, 39, 39, 42, 42,
4001
22, 22, 29, 29, 32, 32, 31, 31, 43, 23,
4002
23, 23, 23, 44, 44, 45, 45, 46, 46, 20,
4003
20, 16, 16, 47, 18, 18, 48, 17, 17, 19,
4004
19, 36, 36, 49, 49, 50, 50, 51, 51, 51,
4005
51, 52, 52, 53, 53, 54, 54, 24, 24, 55,
4006
55, 55, 25, 25, 56, 56, 40, 40, 57, 57,
4007
57, 57, 62, 62, 63, 63, 64, 64, 64, 64,
4008
65, 66, 66, 61, 61, 58, 58, 60, 60, 68,
4009
68, 67, 67, 67, 67, 67, 67, 59, 59, 69,
4010
69, 26, 26, 21, 21, 15, 15, 15, 15, 15,
4011
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
4012
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
4013
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
4014
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
4015
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
4016
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
4017
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
4018
15, 15, 15, 71, 77, 77, 79, 79, 80, 81,
4019
81, 81, 81, 81, 81, 86, 86, 35, 35, 35,
4020
72, 72, 87, 87, 82, 82, 88, 88, 88, 88,
4021
88, 73, 73, 73, 76, 76, 76, 78, 78, 93,
4022
93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
4023
93, 93, 93, 12, 12, 12, 12, 12, 12, 74,
4024
74, 74, 74, 94, 94, 96, 96, 95, 95, 97,
4025
97, 28, 28, 28, 28, 99, 99, 98, 98, 98,
4026
98, 98, 100, 100, 84, 84, 89, 89, 83, 83,
4027
101, 101, 101, 101, 90, 90, 90, 90, 85, 85,
4028
91, 91, 91, 70, 70, 102, 102, 102, 75, 75,
4029
103, 103, 104, 104, 104, 104, 92, 92, 92, 92,
4030
105, 105, 105, 105, 105, 105, 105, 106, 106, 106
4033
PHP.Parser.prototype.yylen = [
4034
1, 1, 2, 0, 1, 3, 1, 1, 1, 1,
4035
3, 5, 4, 3, 3, 3, 1, 1, 3, 2,
4036
4, 3, 1, 3, 2, 0, 1, 1, 1, 1,
4037
3, 7, 10, 5, 7, 9, 5, 2, 3, 2,
4038
3, 2, 3, 3, 3, 3, 1, 2, 5, 7,
4039
8, 10, 5, 1, 5, 3, 3, 2, 1, 2,
4040
8, 1, 3, 0, 1, 9, 7, 6, 5, 1,
4041
2, 2, 0, 2, 0, 2, 0, 2, 1, 3,
4042
1, 4, 1, 4, 1, 4, 1, 3, 3, 3,
4043
4, 4, 5, 0, 2, 4, 3, 1, 1, 1,
4044
4, 0, 2, 5, 0, 2, 6, 0, 2, 0,
4045
3, 1, 0, 1, 3, 3, 5, 0, 1, 1,
4046
1, 1, 0, 1, 3, 1, 2, 3, 1, 1,
4047
2, 4, 3, 1, 1, 3, 2, 0, 3, 3,
4048
8, 3, 1, 3, 0, 2, 4, 5, 4, 4,
4049
3, 1, 1, 1, 3, 1, 1, 0, 1, 1,
4050
2, 1, 1, 1, 1, 1, 1, 1, 3, 1,
4051
3, 3, 1, 0, 1, 1, 6, 3, 4, 4,
4052
1, 2, 3, 3, 3, 3, 3, 3, 3, 3,
4053
3, 3, 3, 2, 2, 2, 2, 3, 3, 3,
4054
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4055
3, 3, 3, 2, 2, 2, 2, 3, 3, 3,
4056
3, 3, 3, 3, 3, 3, 3, 3, 5, 4,
4057
4, 4, 2, 2, 4, 2, 2, 2, 2, 2,
4058
2, 2, 2, 2, 2, 2, 1, 4, 3, 3,
4059
2, 9, 10, 3, 0, 4, 1, 3, 2, 4,
4060
6, 8, 4, 4, 4, 1, 1, 1, 2, 3,
4061
1, 1, 1, 1, 1, 1, 0, 3, 3, 4,
4062
4, 0, 2, 3, 0, 1, 1, 0, 3, 1,
4063
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4064
3, 2, 1, 1, 3, 2, 2, 4, 3, 1,
4065
3, 3, 3, 0, 2, 0, 1, 3, 1, 3,
4066
1, 1, 1, 1, 1, 6, 4, 3, 6, 4,
4067
4, 4, 1, 3, 1, 2, 1, 1, 4, 1,
4068
3, 6, 4, 4, 4, 4, 1, 4, 0, 1,
4069
1, 3, 1, 3, 1, 1, 4, 0, 0, 2,
4070
3, 1, 3, 1, 4, 2, 2, 2, 1, 2,
4071
1, 4, 3, 3, 3, 6, 3, 1, 1, 1
4080
PHP.Parser.prototype.yyn0 = function () {
4081
this.yyval = this.yyastk[ this.stackPos ];
4084
PHP.Parser.prototype.yyn1 = function ( attributes ) {
4085
this.yyval = this.Stmt_Namespace_postprocess(this.yyastk[ this.stackPos-(1-1) ]);
4088
PHP.Parser.prototype.yyn2 = function ( attributes ) {
4089
if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; };
4092
PHP.Parser.prototype.yyn3 = function ( attributes ) {
4096
PHP.Parser.prototype.yyn4 = function ( attributes ) {
4097
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4100
PHP.Parser.prototype.yyn5 = function ( attributes ) {
4101
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4104
PHP.Parser.prototype.yyn6 = function ( attributes ) {
4105
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4108
PHP.Parser.prototype.yyn7 = function ( attributes ) {
4109
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4112
PHP.Parser.prototype.yyn8 = function ( attributes ) {
4113
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4116
PHP.Parser.prototype.yyn9 = function ( attributes ) {
4117
this.yyval = this.Node_Stmt_HaltCompiler(attributes);
4120
PHP.Parser.prototype.yyn10 = function ( attributes ) {
4121
this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(3-2) ], attributes), null, attributes);
4124
PHP.Parser.prototype.yyn11 = function ( attributes ) {
4125
this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(5-2) ], attributes), this.yyastk[ this.stackPos-(5-4) ], attributes);
4128
PHP.Parser.prototype.yyn12 = function ( attributes ) {
4129
this.yyval = this.Node_Stmt_Namespace(null, this.yyastk[ this.stackPos-(4-3) ], attributes);
4132
PHP.Parser.prototype.yyn13 = function ( attributes ) {
4133
this.yyval = this.Node_Stmt_Use(this.yyastk[ this.stackPos-(3-2) ], attributes);
4136
PHP.Parser.prototype.yyn14 = function ( attributes ) {
4137
this.yyval = this.Node_Stmt_Const(this.yyastk[ this.stackPos-(3-2) ], attributes);
4140
PHP.Parser.prototype.yyn15 = function ( attributes ) {
4141
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4144
PHP.Parser.prototype.yyn16 = function ( attributes ) {
4145
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4148
PHP.Parser.prototype.yyn17 = function ( attributes ) {
4149
this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes), null, attributes);
4152
PHP.Parser.prototype.yyn18 = function ( attributes ) {
4153
this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(3-1) ], attributes), this.yyastk[ this.stackPos-(3-3) ], attributes);
4156
PHP.Parser.prototype.yyn19 = function ( attributes ) {
4157
this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(2-2) ], attributes), null, attributes);
4160
PHP.Parser.prototype.yyn20 = function ( attributes ) {
4161
this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(4-2) ], attributes), this.yyastk[ this.stackPos-(4-4) ], attributes);
4164
PHP.Parser.prototype.yyn21 = function ( attributes ) {
4165
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4168
PHP.Parser.prototype.yyn22 = function ( attributes ) {
4169
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4172
PHP.Parser.prototype.yyn23 = function ( attributes ) {
4173
this.yyval = this.Node_Const(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4176
PHP.Parser.prototype.yyn24 = function ( attributes ) {
4177
if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; };
4180
PHP.Parser.prototype.yyn25 = function ( attributes ) {
4184
PHP.Parser.prototype.yyn26 = function ( attributes ) {
4185
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4188
PHP.Parser.prototype.yyn27 = function ( attributes ) {
4189
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4192
PHP.Parser.prototype.yyn28 = function ( attributes ) {
4193
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4196
PHP.Parser.prototype.yyn29 = function ( attributes ) {
4197
throw new Error('__halt_compiler() can only be used from the outermost scope');
4200
PHP.Parser.prototype.yyn30 = function ( attributes ) {
4201
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
4204
PHP.Parser.prototype.yyn31 = function ( attributes ) {
4205
this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(7-3) ], {'stmts': Array.isArray(this.yyastk[ this.stackPos-(7-5) ]) ? this.yyastk[ this.stackPos-(7-5) ] : [this.yyastk[ this.stackPos-(7-5) ]], 'elseifs': this.yyastk[ this.stackPos-(7-6) ], 'Else': this.yyastk[ this.stackPos-(7-7) ]}, attributes);
4208
PHP.Parser.prototype.yyn32 = function ( attributes ) {
4209
this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(10-3) ], {'stmts': this.yyastk[ this.stackPos-(10-6) ], 'elseifs': this.yyastk[ this.stackPos-(10-7) ], 'else': this.yyastk[ this.stackPos-(10-8) ]}, attributes);
4212
PHP.Parser.prototype.yyn33 = function ( attributes ) {
4213
this.yyval = this.Node_Stmt_While(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
4216
PHP.Parser.prototype.yyn34 = function ( attributes ) {
4217
this.yyval = this.Node_Stmt_Do(this.yyastk[ this.stackPos-(7-5) ], Array.isArray(this.yyastk[ this.stackPos-(7-2) ]) ? this.yyastk[ this.stackPos-(7-2) ] : [this.yyastk[ this.stackPos-(7-2) ]], attributes);
4220
PHP.Parser.prototype.yyn35 = function ( attributes ) {
4221
this.yyval = this.Node_Stmt_For({'init': this.yyastk[ this.stackPos-(9-3) ], 'cond': this.yyastk[ this.stackPos-(9-5) ], 'loop': this.yyastk[ this.stackPos-(9-7) ], 'stmts': this.yyastk[ this.stackPos-(9-9) ]}, attributes);
4224
PHP.Parser.prototype.yyn36 = function ( attributes ) {
4225
this.yyval = this.Node_Stmt_Switch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
4228
PHP.Parser.prototype.yyn37 = function ( attributes ) {
4229
this.yyval = this.Node_Stmt_Break(null, attributes);
4232
PHP.Parser.prototype.yyn38 = function ( attributes ) {
4233
this.yyval = this.Node_Stmt_Break(this.yyastk[ this.stackPos-(3-2) ], attributes);
4236
PHP.Parser.prototype.yyn39 = function ( attributes ) {
4237
this.yyval = this.Node_Stmt_Continue(null, attributes);
4240
PHP.Parser.prototype.yyn40 = function ( attributes ) {
4241
this.yyval = this.Node_Stmt_Continue(this.yyastk[ this.stackPos-(3-2) ], attributes);
4244
PHP.Parser.prototype.yyn41 = function ( attributes ) {
4245
this.yyval = this.Node_Stmt_Return(null, attributes);
4248
PHP.Parser.prototype.yyn42 = function ( attributes ) {
4249
this.yyval = this.Node_Stmt_Return(this.yyastk[ this.stackPos-(3-2) ], attributes);
4252
PHP.Parser.prototype.yyn43 = function ( attributes ) {
4253
this.yyval = this.Node_Stmt_Global(this.yyastk[ this.stackPos-(3-2) ], attributes);
4256
PHP.Parser.prototype.yyn44 = function ( attributes ) {
4257
this.yyval = this.Node_Stmt_Static(this.yyastk[ this.stackPos-(3-2) ], attributes);
4260
PHP.Parser.prototype.yyn45 = function ( attributes ) {
4261
this.yyval = this.Node_Stmt_Echo(this.yyastk[ this.stackPos-(3-2) ], attributes);
4264
PHP.Parser.prototype.yyn46 = function ( attributes ) {
4265
this.yyval = this.Node_Stmt_InlineHTML(this.yyastk[ this.stackPos-(1-1) ], attributes);
4268
PHP.Parser.prototype.yyn47 = function ( attributes ) {
4269
this.yyval = this.yyastk[ this.stackPos-(2-1) ];
4272
PHP.Parser.prototype.yyn48 = function ( attributes ) {
4273
this.yyval = this.Node_Stmt_Unset(this.yyastk[ this.stackPos-(5-3) ], attributes);
4276
PHP.Parser.prototype.yyn49 = function ( attributes ) {
4277
this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(7-3) ], this.yyastk[ this.stackPos-(7-5) ], {'keyVar': null, 'byRef': false, 'stmts': this.yyastk[ this.stackPos-(7-7) ]}, attributes);
4280
PHP.Parser.prototype.yyn50 = function ( attributes ) {
4281
this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-6) ], {'keyVar': null, 'byRef': true, 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes);
4284
PHP.Parser.prototype.yyn51 = function ( attributes ) {
4285
this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(10-3) ], this.yyastk[ this.stackPos-(10-8) ], {'keyVar': this.yyastk[ this.stackPos-(10-5) ], 'byRef': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-10) ]}, attributes);
4288
PHP.Parser.prototype.yyn52 = function ( attributes ) {
4289
this.yyval = this.Node_Stmt_Declare(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
4292
PHP.Parser.prototype.yyn53 = function ( attributes ) {
4296
PHP.Parser.prototype.yyn54 = function ( attributes ) {
4297
this.yyval = this.Node_Stmt_TryCatch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
4300
PHP.Parser.prototype.yyn55 = function ( attributes ) {
4301
this.yyval = this.Node_Stmt_Throw(this.yyastk[ this.stackPos-(3-2) ], attributes);
4304
PHP.Parser.prototype.yyn56 = function ( attributes ) {
4305
this.yyval = this.Node_Stmt_Goto(this.yyastk[ this.stackPos-(3-2) ], attributes);
4308
PHP.Parser.prototype.yyn57 = function ( attributes ) {
4309
this.yyval = this.Node_Stmt_Label(this.yyastk[ this.stackPos-(2-1) ], attributes);
4312
PHP.Parser.prototype.yyn58 = function ( attributes ) {
4313
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4316
PHP.Parser.prototype.yyn59 = function ( attributes ) {
4317
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
4320
PHP.Parser.prototype.yyn60 = function ( attributes ) {
4321
this.yyval = this.Node_Stmt_Catch(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-4) ].substring( 1 ), this.yyastk[ this.stackPos-(8-7) ], attributes);
4324
PHP.Parser.prototype.yyn61 = function ( attributes ) {
4325
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4328
PHP.Parser.prototype.yyn62 = function ( attributes ) {
4329
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4332
PHP.Parser.prototype.yyn63 = function ( attributes ) {
4336
PHP.Parser.prototype.yyn64 = function ( attributes ) {
4340
PHP.Parser.prototype.yyn65 = function ( attributes ) {
4341
this.yyval = this.Node_Stmt_Function(this.yyastk[ this.stackPos-(9-3) ], {'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-5) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes);
4344
PHP.Parser.prototype.yyn66 = function ( attributes ) {
4345
this.yyval = this.Node_Stmt_Class(this.yyastk[ this.stackPos-(7-2) ], {'type': this.yyastk[ this.stackPos-(7-1) ], 'Extends': this.yyastk[ this.stackPos-(7-3) ], 'Implements': this.yyastk[ this.stackPos-(7-4) ], 'stmts': this.yyastk[ this.stackPos-(7-6) ]}, attributes);
4348
PHP.Parser.prototype.yyn67 = function ( attributes ) {
4349
this.yyval = this.Node_Stmt_Interface(this.yyastk[ this.stackPos-(6-2) ], {'Extends': this.yyastk[ this.stackPos-(6-3) ], 'stmts': this.yyastk[ this.stackPos-(6-5) ]}, attributes);
4352
PHP.Parser.prototype.yyn68 = function ( attributes ) {
4353
this.yyval = this.Node_Stmt_Trait(this.yyastk[ this.stackPos-(5-2) ], this.yyastk[ this.stackPos-(5-4) ], attributes);
4356
PHP.Parser.prototype.yyn69 = function ( attributes ) {
4360
PHP.Parser.prototype.yyn70 = function ( attributes ) {
4361
this.yyval = this.MODIFIER_ABSTRACT;
4364
PHP.Parser.prototype.yyn71 = function ( attributes ) {
4365
this.yyval = this.MODIFIER_FINAL;
4368
PHP.Parser.prototype.yyn72 = function ( attributes ) {
4372
PHP.Parser.prototype.yyn73 = function ( attributes ) {
4373
this.yyval = this.yyastk[ this.stackPos-(2-2) ];
4376
PHP.Parser.prototype.yyn74 = function ( attributes ) {
4380
PHP.Parser.prototype.yyn75 = function ( attributes ) {
4381
this.yyval = this.yyastk[ this.stackPos-(2-2) ];
4384
PHP.Parser.prototype.yyn76 = function ( attributes ) {
4388
PHP.Parser.prototype.yyn77 = function ( attributes ) {
4389
this.yyval = this.yyastk[ this.stackPos-(2-2) ];
4392
PHP.Parser.prototype.yyn78 = function ( attributes ) {
4393
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4396
PHP.Parser.prototype.yyn79 = function ( attributes ) {
4397
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4400
PHP.Parser.prototype.yyn80 = function ( attributes ) {
4401
this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
4404
PHP.Parser.prototype.yyn81 = function ( attributes ) {
4405
this.yyval = this.yyastk[ this.stackPos-(4-2) ];
4408
PHP.Parser.prototype.yyn82 = function ( attributes ) {
4409
this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
4412
PHP.Parser.prototype.yyn83 = function ( attributes ) {
4413
this.yyval = this.yyastk[ this.stackPos-(4-2) ];
4416
PHP.Parser.prototype.yyn84 = function ( attributes ) {
4417
this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
4420
PHP.Parser.prototype.yyn85 = function ( attributes ) {
4421
this.yyval = this.yyastk[ this.stackPos-(4-2) ];
4424
PHP.Parser.prototype.yyn86 = function ( attributes ) {
4425
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4428
PHP.Parser.prototype.yyn87 = function ( attributes ) {
4429
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4432
PHP.Parser.prototype.yyn88 = function ( attributes ) {
4433
this.yyval = this.Node_Stmt_DeclareDeclare(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4436
PHP.Parser.prototype.yyn89 = function ( attributes ) {
4437
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
4440
PHP.Parser.prototype.yyn90 = function ( attributes ) {
4441
this.yyval = this.yyastk[ this.stackPos-(4-3) ];
4444
PHP.Parser.prototype.yyn91 = function ( attributes ) {
4445
this.yyval = this.yyastk[ this.stackPos-(4-2) ];
4448
PHP.Parser.prototype.yyn92 = function ( attributes ) {
4449
this.yyval = this.yyastk[ this.stackPos-(5-3) ];
4452
PHP.Parser.prototype.yyn93 = function ( attributes ) {
4456
PHP.Parser.prototype.yyn94 = function ( attributes ) {
4457
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
4460
PHP.Parser.prototype.yyn95 = function ( attributes ) {
4461
this.yyval = this.Node_Stmt_Case(this.yyastk[ this.stackPos-(4-2) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
4464
PHP.Parser.prototype.yyn96 = function ( attributes ) {
4465
this.yyval = this.Node_Stmt_Case(null, this.yyastk[ this.stackPos-(3-3) ], attributes);
4468
PHP.Parser.prototype.yyn97 = function () {
4469
this.yyval = this.yyastk[ this.stackPos ];
4472
PHP.Parser.prototype.yyn98 = function () {
4473
this.yyval = this.yyastk[ this.stackPos ];
4476
PHP.Parser.prototype.yyn99 = function ( attributes ) {
4477
this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
4480
PHP.Parser.prototype.yyn100 = function ( attributes ) {
4481
this.yyval = this.yyastk[ this.stackPos-(4-2) ];
4484
PHP.Parser.prototype.yyn101 = function ( attributes ) {
4488
PHP.Parser.prototype.yyn102 = function ( attributes ) {
4489
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
4492
PHP.Parser.prototype.yyn103 = function ( attributes ) {
4493
this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(5-3) ], Array.isArray(this.yyastk[ this.stackPos-(5-5) ]) ? this.yyastk[ this.stackPos-(5-5) ] : [this.yyastk[ this.stackPos-(5-5) ]], attributes);
4496
PHP.Parser.prototype.yyn104 = function ( attributes ) {
4500
PHP.Parser.prototype.yyn105 = function ( attributes ) {
4501
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
4504
PHP.Parser.prototype.yyn106 = function ( attributes ) {
4505
this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes);
4508
PHP.Parser.prototype.yyn107 = function ( attributes ) {
4512
PHP.Parser.prototype.yyn108 = function ( attributes ) {
4513
this.yyval = this.Node_Stmt_Else(Array.isArray(this.yyastk[ this.stackPos-(2-2) ]) ? this.yyastk[ this.stackPos-(2-2) ] : [this.yyastk[ this.stackPos-(2-2) ]], attributes);
4516
PHP.Parser.prototype.yyn109 = function ( attributes ) {
4520
PHP.Parser.prototype.yyn110 = function ( attributes ) {
4521
this.yyval = this.Node_Stmt_Else(this.yyastk[ this.stackPos-(3-3) ], attributes);
4524
PHP.Parser.prototype.yyn111 = function ( attributes ) {
4525
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4528
PHP.Parser.prototype.yyn112 = function ( attributes ) {
4532
PHP.Parser.prototype.yyn113 = function ( attributes ) {
4533
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4536
PHP.Parser.prototype.yyn114 = function ( attributes ) {
4537
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4540
PHP.Parser.prototype.yyn115 = function ( attributes ) {
4541
this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), null, this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes);
4544
PHP.Parser.prototype.yyn116 = function ( attributes ) {
4545
this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(5-3) ].substring( 1 ), this.yyastk[ this.stackPos-(5-5) ], this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-2) ], attributes);
4548
PHP.Parser.prototype.yyn117 = function ( attributes ) {
4552
PHP.Parser.prototype.yyn118 = function ( attributes ) {
4553
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4556
PHP.Parser.prototype.yyn119 = function ( attributes ) {
4557
this.yyval = 'array';
4560
PHP.Parser.prototype.yyn120 = function ( attributes ) {
4561
this.yyval = 'callable';
4564
PHP.Parser.prototype.yyn121 = function ( attributes ) {
4565
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4568
PHP.Parser.prototype.yyn122 = function ( attributes ) {
4572
PHP.Parser.prototype.yyn123 = function ( attributes ) {
4573
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4576
PHP.Parser.prototype.yyn124 = function ( attributes ) {
4577
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4580
PHP.Parser.prototype.yyn125 = function ( attributes ) {
4581
this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(1-1) ], false, attributes);
4584
PHP.Parser.prototype.yyn126 = function ( attributes ) {
4585
this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(2-2) ], true, attributes);
4588
PHP.Parser.prototype.yyn127 = function ( attributes ) {
4589
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4592
PHP.Parser.prototype.yyn128 = function ( attributes ) {
4593
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4596
PHP.Parser.prototype.yyn129 = function ( attributes ) {
4597
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
4600
PHP.Parser.prototype.yyn130 = function ( attributes ) {
4601
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes);
4604
PHP.Parser.prototype.yyn131 = function ( attributes ) {
4605
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes);
4608
PHP.Parser.prototype.yyn132 = function ( attributes ) {
4609
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4612
PHP.Parser.prototype.yyn133 = function ( attributes ) {
4613
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4616
PHP.Parser.prototype.yyn134 = function ( attributes ) {
4617
this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes);
4620
PHP.Parser.prototype.yyn135 = function ( attributes ) {
4621
this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes);
4624
PHP.Parser.prototype.yyn136 = function ( attributes ) {
4625
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
4628
PHP.Parser.prototype.yyn137 = function ( attributes ) {
4632
PHP.Parser.prototype.yyn138 = function ( attributes ) {
4633
this.yyval = this.Node_Stmt_Property(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes);
4636
PHP.Parser.prototype.yyn139 = function ( attributes ) {
4637
this.yyval = this.Node_Stmt_ClassConst(this.yyastk[ this.stackPos-(3-2) ], attributes);
4640
PHP.Parser.prototype.yyn140 = function ( attributes ) {
4641
this.yyval = this.Node_Stmt_ClassMethod(this.yyastk[ this.stackPos-(8-4) ], {'type': this.yyastk[ this.stackPos-(8-1) ], 'byRef': this.yyastk[ this.stackPos-(8-3) ], 'params': this.yyastk[ this.stackPos-(8-6) ], 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes);
4644
PHP.Parser.prototype.yyn141 = function ( attributes ) {
4645
this.yyval = this.Node_Stmt_TraitUse(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4648
PHP.Parser.prototype.yyn142 = function ( attributes ) {
4652
PHP.Parser.prototype.yyn143 = function ( attributes ) {
4653
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
4656
PHP.Parser.prototype.yyn144 = function ( attributes ) {
4660
PHP.Parser.prototype.yyn145 = function ( attributes ) {
4661
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
4664
PHP.Parser.prototype.yyn146 = function ( attributes ) {
4665
this.yyval = this.Node_Stmt_TraitUseAdaptation_Precedence(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], attributes);
4668
PHP.Parser.prototype.yyn147 = function ( attributes ) {
4669
this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(5-1) ][0], this.yyastk[ this.stackPos-(5-1) ][1], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-4) ], attributes);
4672
PHP.Parser.prototype.yyn148 = function ( attributes ) {
4673
this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], null, attributes);
4676
PHP.Parser.prototype.yyn149 = function ( attributes ) {
4677
this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], null, this.yyastk[ this.stackPos-(4-3) ], attributes);
4680
PHP.Parser.prototype.yyn150 = function ( attributes ) {
4681
this.yyval = array(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ]);
4684
PHP.Parser.prototype.yyn151 = function ( attributes ) {
4685
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4688
PHP.Parser.prototype.yyn152 = function ( attributes ) {
4689
this.yyval = array(null, this.yyastk[ this.stackPos-(1-1) ]);
4692
PHP.Parser.prototype.yyn153 = function ( attributes ) {
4696
PHP.Parser.prototype.yyn154 = function ( attributes ) {
4697
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
4700
PHP.Parser.prototype.yyn155 = function ( attributes ) {
4701
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4704
PHP.Parser.prototype.yyn156 = function ( attributes ) {
4705
this.yyval = this.MODIFIER_PUBLIC;
4708
PHP.Parser.prototype.yyn157 = function ( attributes ) {
4709
this.yyval = this.MODIFIER_PUBLIC;
4712
PHP.Parser.prototype.yyn158 = function ( attributes ) {
4713
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4716
PHP.Parser.prototype.yyn159 = function ( attributes ) {
4717
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4720
PHP.Parser.prototype.yyn160 = function ( attributes ) {
4721
this.Stmt_Class_verifyModifier(this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]); this.yyval = this.yyastk[ this.stackPos-(2-1) ] | this.yyastk[ this.stackPos-(2-2) ];
4724
PHP.Parser.prototype.yyn161 = function ( attributes ) {
4725
this.yyval = this.MODIFIER_PUBLIC;
4728
PHP.Parser.prototype.yyn162 = function ( attributes ) {
4729
this.yyval = this.MODIFIER_PROTECTED;
4732
PHP.Parser.prototype.yyn163 = function ( attributes ) {
4733
this.yyval = this.MODIFIER_PRIVATE;
4736
PHP.Parser.prototype.yyn164 = function ( attributes ) {
4737
this.yyval = this.MODIFIER_STATIC;
4740
PHP.Parser.prototype.yyn165 = function ( attributes ) {
4741
this.yyval = this.MODIFIER_ABSTRACT;
4744
PHP.Parser.prototype.yyn166 = function ( attributes ) {
4745
this.yyval = this.MODIFIER_FINAL;
4748
PHP.Parser.prototype.yyn167 = function ( attributes ) {
4749
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4752
PHP.Parser.prototype.yyn168 = function ( attributes ) {
4753
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4756
PHP.Parser.prototype.yyn169 = function ( attributes ) {
4757
this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes);
4760
PHP.Parser.prototype.yyn170 = function ( attributes ) {
4761
this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes);
4764
PHP.Parser.prototype.yyn171 = function ( attributes ) {
4765
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
4768
PHP.Parser.prototype.yyn172 = function ( attributes ) {
4769
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
4772
PHP.Parser.prototype.yyn173 = function ( attributes ) {
4776
PHP.Parser.prototype.yyn174 = function ( attributes ) {
4777
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4780
PHP.Parser.prototype.yyn175 = function ( attributes ) {
4781
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4784
PHP.Parser.prototype.yyn176 = function ( attributes ) {
4785
this.yyval = this.Node_Expr_AssignList(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes);
4788
PHP.Parser.prototype.yyn177 = function ( attributes ) {
4789
this.yyval = this.Node_Expr_Assign(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4792
PHP.Parser.prototype.yyn178 = function ( attributes ) {
4793
this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
4796
PHP.Parser.prototype.yyn179 = function ( attributes ) {
4797
this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
4800
PHP.Parser.prototype.yyn180 = function ( attributes ) {
4801
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
4804
PHP.Parser.prototype.yyn181 = function ( attributes ) {
4805
this.yyval = this.Node_Expr_Clone(this.yyastk[ this.stackPos-(2-2) ], attributes);
4808
PHP.Parser.prototype.yyn182 = function ( attributes ) {
4809
this.yyval = this.Node_Expr_AssignPlus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4812
PHP.Parser.prototype.yyn183 = function ( attributes ) {
4813
this.yyval = this.Node_Expr_AssignMinus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4816
PHP.Parser.prototype.yyn184 = function ( attributes ) {
4817
this.yyval = this.Node_Expr_AssignMul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4820
PHP.Parser.prototype.yyn185 = function ( attributes ) {
4821
this.yyval = this.Node_Expr_AssignDiv(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4824
PHP.Parser.prototype.yyn186 = function ( attributes ) {
4825
this.yyval = this.Node_Expr_AssignConcat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4828
PHP.Parser.prototype.yyn187 = function ( attributes ) {
4829
this.yyval = this.Node_Expr_AssignMod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4832
PHP.Parser.prototype.yyn188 = function ( attributes ) {
4833
this.yyval = this.Node_Expr_AssignBitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4836
PHP.Parser.prototype.yyn189 = function ( attributes ) {
4837
this.yyval = this.Node_Expr_AssignBitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4840
PHP.Parser.prototype.yyn190 = function ( attributes ) {
4841
this.yyval = this.Node_Expr_AssignBitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4844
PHP.Parser.prototype.yyn191 = function ( attributes ) {
4845
this.yyval = this.Node_Expr_AssignShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4848
PHP.Parser.prototype.yyn192 = function ( attributes ) {
4849
this.yyval = this.Node_Expr_AssignShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4852
PHP.Parser.prototype.yyn193 = function ( attributes ) {
4853
this.yyval = this.Node_Expr_PostInc(this.yyastk[ this.stackPos-(2-1) ], attributes);
4856
PHP.Parser.prototype.yyn194 = function ( attributes ) {
4857
this.yyval = this.Node_Expr_PreInc(this.yyastk[ this.stackPos-(2-2) ], attributes);
4860
PHP.Parser.prototype.yyn195 = function ( attributes ) {
4861
this.yyval = this.Node_Expr_PostDec(this.yyastk[ this.stackPos-(2-1) ], attributes);
4864
PHP.Parser.prototype.yyn196 = function ( attributes ) {
4865
this.yyval = this.Node_Expr_PreDec(this.yyastk[ this.stackPos-(2-2) ], attributes);
4868
PHP.Parser.prototype.yyn197 = function ( attributes ) {
4869
this.yyval = this.Node_Expr_BooleanOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4872
PHP.Parser.prototype.yyn198 = function ( attributes ) {
4873
this.yyval = this.Node_Expr_BooleanAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4876
PHP.Parser.prototype.yyn199 = function ( attributes ) {
4877
this.yyval = this.Node_Expr_LogicalOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4880
PHP.Parser.prototype.yyn200 = function ( attributes ) {
4881
this.yyval = this.Node_Expr_LogicalAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4884
PHP.Parser.prototype.yyn201 = function ( attributes ) {
4885
this.yyval = this.Node_Expr_LogicalXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4888
PHP.Parser.prototype.yyn202 = function ( attributes ) {
4889
this.yyval = this.Node_Expr_BitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4892
PHP.Parser.prototype.yyn203 = function ( attributes ) {
4893
this.yyval = this.Node_Expr_BitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4896
PHP.Parser.prototype.yyn204 = function ( attributes ) {
4897
this.yyval = this.Node_Expr_BitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4900
PHP.Parser.prototype.yyn205 = function ( attributes ) {
4901
this.yyval = this.Node_Expr_Concat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4904
PHP.Parser.prototype.yyn206 = function ( attributes ) {
4905
this.yyval = this.Node_Expr_Plus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4908
PHP.Parser.prototype.yyn207 = function ( attributes ) {
4909
this.yyval = this.Node_Expr_Minus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4912
PHP.Parser.prototype.yyn208 = function ( attributes ) {
4913
this.yyval = this.Node_Expr_Mul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4916
PHP.Parser.prototype.yyn209 = function ( attributes ) {
4917
this.yyval = this.Node_Expr_Div(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4920
PHP.Parser.prototype.yyn210 = function ( attributes ) {
4921
this.yyval = this.Node_Expr_Mod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4924
PHP.Parser.prototype.yyn211 = function ( attributes ) {
4925
this.yyval = this.Node_Expr_ShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4928
PHP.Parser.prototype.yyn212 = function ( attributes ) {
4929
this.yyval = this.Node_Expr_ShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4932
PHP.Parser.prototype.yyn213 = function ( attributes ) {
4933
this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes);
4936
PHP.Parser.prototype.yyn214 = function ( attributes ) {
4937
this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes);
4940
PHP.Parser.prototype.yyn215 = function ( attributes ) {
4941
this.yyval = this.Node_Expr_BooleanNot(this.yyastk[ this.stackPos-(2-2) ], attributes);
4944
PHP.Parser.prototype.yyn216 = function ( attributes ) {
4945
this.yyval = this.Node_Expr_BitwiseNot(this.yyastk[ this.stackPos-(2-2) ], attributes);
4948
PHP.Parser.prototype.yyn217 = function ( attributes ) {
4949
this.yyval = this.Node_Expr_Identical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4952
PHP.Parser.prototype.yyn218 = function ( attributes ) {
4953
this.yyval = this.Node_Expr_NotIdentical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4956
PHP.Parser.prototype.yyn219 = function ( attributes ) {
4957
this.yyval = this.Node_Expr_Equal(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4960
PHP.Parser.prototype.yyn220 = function ( attributes ) {
4961
this.yyval = this.Node_Expr_NotEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4964
PHP.Parser.prototype.yyn221 = function ( attributes ) {
4965
this.yyval = this.Node_Expr_Smaller(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4968
PHP.Parser.prototype.yyn222 = function ( attributes ) {
4969
this.yyval = this.Node_Expr_SmallerOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4972
PHP.Parser.prototype.yyn223 = function ( attributes ) {
4973
this.yyval = this.Node_Expr_Greater(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4976
PHP.Parser.prototype.yyn224 = function ( attributes ) {
4977
this.yyval = this.Node_Expr_GreaterOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4980
PHP.Parser.prototype.yyn225 = function ( attributes ) {
4981
this.yyval = this.Node_Expr_Instanceof(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
4984
PHP.Parser.prototype.yyn226 = function ( attributes ) {
4985
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
4988
PHP.Parser.prototype.yyn227 = function ( attributes ) {
4989
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
4992
PHP.Parser.prototype.yyn228 = function ( attributes ) {
4993
this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
4996
PHP.Parser.prototype.yyn229 = function ( attributes ) {
4997
this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(4-1) ], null, this.yyastk[ this.stackPos-(4-4) ], attributes);
5000
PHP.Parser.prototype.yyn230 = function ( attributes ) {
5001
this.yyval = this.Node_Expr_Isset(this.yyastk[ this.stackPos-(4-3) ], attributes);
5004
PHP.Parser.prototype.yyn231 = function ( attributes ) {
5005
this.yyval = this.Node_Expr_Empty(this.yyastk[ this.stackPos-(4-3) ], attributes);
5008
PHP.Parser.prototype.yyn232 = function ( attributes ) {
5009
this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Include", attributes);
5012
PHP.Parser.prototype.yyn233 = function ( attributes ) {
5013
this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_IncludeOnce", attributes);
5016
PHP.Parser.prototype.yyn234 = function ( attributes ) {
5017
this.yyval = this.Node_Expr_Eval(this.yyastk[ this.stackPos-(4-3) ], attributes);
5020
PHP.Parser.prototype.yyn235 = function ( attributes ) {
5021
this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Require", attributes);
5024
PHP.Parser.prototype.yyn236 = function ( attributes ) {
5025
this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_RequireOnce", attributes);
5028
PHP.Parser.prototype.yyn237 = function ( attributes ) {
5029
this.yyval = this.Node_Expr_Cast_Int(this.yyastk[ this.stackPos-(2-2) ], attributes);
5032
PHP.Parser.prototype.yyn238 = function ( attributes ) {
5033
this.yyval = this.Node_Expr_Cast_Double(this.yyastk[ this.stackPos-(2-2) ], attributes);
5036
PHP.Parser.prototype.yyn239 = function ( attributes ) {
5037
this.yyval = this.Node_Expr_Cast_String(this.yyastk[ this.stackPos-(2-2) ], attributes);
5040
PHP.Parser.prototype.yyn240 = function ( attributes ) {
5041
this.yyval = this.Node_Expr_Cast_Array(this.yyastk[ this.stackPos-(2-2) ], attributes);
5044
PHP.Parser.prototype.yyn241 = function ( attributes ) {
5045
this.yyval = this.Node_Expr_Cast_Object(this.yyastk[ this.stackPos-(2-2) ], attributes);
5048
PHP.Parser.prototype.yyn242 = function ( attributes ) {
5049
this.yyval = this.Node_Expr_Cast_Bool(this.yyastk[ this.stackPos-(2-2) ], attributes);
5052
PHP.Parser.prototype.yyn243 = function ( attributes ) {
5053
this.yyval = this.Node_Expr_Cast_Unset(this.yyastk[ this.stackPos-(2-2) ], attributes);
5056
PHP.Parser.prototype.yyn244 = function ( attributes ) {
5057
this.yyval = this.Node_Expr_Exit(this.yyastk[ this.stackPos-(2-2) ], attributes);
5060
PHP.Parser.prototype.yyn245 = function ( attributes ) {
5061
this.yyval = this.Node_Expr_ErrorSuppress(this.yyastk[ this.stackPos-(2-2) ], attributes);
5064
PHP.Parser.prototype.yyn246 = function ( attributes ) {
5065
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5068
PHP.Parser.prototype.yyn247 = function ( attributes ) {
5069
this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes);
5072
PHP.Parser.prototype.yyn248 = function ( attributes ) {
5073
this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes);
5076
PHP.Parser.prototype.yyn249 = function ( attributes ) {
5077
this.yyval = this.Node_Expr_ShellExec(this.yyastk[ this.stackPos-(3-2) ], attributes);
5080
PHP.Parser.prototype.yyn250 = function ( attributes ) {
5081
this.yyval = this.Node_Expr_Print(this.yyastk[ this.stackPos-(2-2) ], attributes);
5084
PHP.Parser.prototype.yyn251 = function ( attributes ) {
5085
this.yyval = this.Node_Expr_Closure({'static': false, 'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-4) ], 'uses': this.yyastk[ this.stackPos-(9-6) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes);
5088
PHP.Parser.prototype.yyn252 = function ( attributes ) {
5089
this.yyval = this.Node_Expr_Closure({'static': true, 'byRef': this.yyastk[ this.stackPos-(10-3) ], 'params': this.yyastk[ this.stackPos-(10-5) ], 'uses': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-9) ]}, attributes);
5092
PHP.Parser.prototype.yyn253 = function ( attributes ) {
5093
this.yyval = this.Node_Expr_New(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
5096
PHP.Parser.prototype.yyn254 = function ( attributes ) {
5100
PHP.Parser.prototype.yyn255 = function ( attributes ) {
5101
this.yyval = this.yyastk[ this.stackPos-(4-3) ];
5104
PHP.Parser.prototype.yyn256 = function ( attributes ) {
5105
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
5108
PHP.Parser.prototype.yyn257 = function ( attributes ) {
5109
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
5112
PHP.Parser.prototype.yyn258 = function ( attributes ) {
5113
this.yyval = this.Node_Expr_ClosureUse(this.yyastk[ this.stackPos-(2-2) ].substring( 1 ), this.yyastk[ this.stackPos-(2-1) ], attributes);
5116
PHP.Parser.prototype.yyn259 = function ( attributes ) {
5117
this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5120
PHP.Parser.prototype.yyn260 = function ( attributes ) {
5121
this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
5124
PHP.Parser.prototype.yyn261 = function ( attributes ) {
5125
this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(8-1) ], this.yyastk[ this.stackPos-(8-4) ], this.yyastk[ this.stackPos-(8-7) ], attributes);
5128
PHP.Parser.prototype.yyn262 = function ( attributes ) {
5130
if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_StaticPropertyFetch") {
5131
this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(4-1) ].Class, this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].name, attributes), this.yyastk[ this.stackPos-(4-3) ], attributes);
5132
} else if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_ArrayDimFetch") {
5133
var tmp = this.yyastk[ this.stackPos-(4-1) ];
5134
while (tmp.variable.type === "Node_Expr_ArrayDimFetch") {
5138
this.yyval = this.Node_Expr_StaticCall(tmp.variable.Class, this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5139
tmp.variable = this.Node_Expr_Variable(tmp.variable.name, attributes);
5141
throw new Exception;
5146
PHP.Parser.prototype.yyn263 = function ( attributes ) {
5147
this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5150
PHP.Parser.prototype.yyn264 = function ( attributes ) {
5151
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5154
PHP.Parser.prototype.yyn265 = function ( attributes ) {
5155
this.yyval = this.Node_Name('static', attributes);
5158
PHP.Parser.prototype.yyn266 = function ( attributes ) {
5159
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5162
PHP.Parser.prototype.yyn267 = function ( attributes ) {
5163
this.yyval = this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes);
5166
PHP.Parser.prototype.yyn268 = function ( attributes ) {
5167
this.yyval = this.Node_Name_FullyQualified(this.yyastk[ this.stackPos-(2-2) ], attributes);
5170
PHP.Parser.prototype.yyn269 = function ( attributes ) {
5171
this.yyval = this.Node_Name_Relative(this.yyastk[ this.stackPos-(3-3) ], attributes);
5174
PHP.Parser.prototype.yyn270 = function ( attributes ) {
5175
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5178
PHP.Parser.prototype.yyn271 = function ( attributes ) {
5179
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5182
PHP.Parser.prototype.yyn272 = function ( attributes ) {
5183
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5186
PHP.Parser.prototype.yyn273 = function ( attributes ) {
5187
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5190
PHP.Parser.prototype.yyn274 = function ( attributes ) {
5191
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5194
PHP.Parser.prototype.yyn275 = function ( attributes ) {
5195
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5198
PHP.Parser.prototype.yyn276 = function () {
5199
this.yyval = this.yyastk[ this.stackPos ];
5202
PHP.Parser.prototype.yyn277 = function ( attributes ) {
5203
this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
5206
PHP.Parser.prototype.yyn278 = function ( attributes ) {
5207
this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
5210
PHP.Parser.prototype.yyn279 = function ( attributes ) {
5211
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5214
PHP.Parser.prototype.yyn280 = function ( attributes ) {
5215
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5218
PHP.Parser.prototype.yyn281 = function ( attributes ) {
5222
PHP.Parser.prototype.yyn282 = function ( attributes ) {
5226
PHP.Parser.prototype.yyn283 = function ( attributes ) {
5227
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
5230
PHP.Parser.prototype.yyn284 = function ( attributes ) {
5234
PHP.Parser.prototype.yyn285 = function ( attributes ) {
5235
this.yyval = [this.Scalar_String_parseEscapeSequences(this.yyastk[ this.stackPos-(1-1) ], '`')];
5238
PHP.Parser.prototype.yyn286 = function ( attributes ) {
5239
; this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5242
PHP.Parser.prototype.yyn287 = function ( attributes ) {
5246
PHP.Parser.prototype.yyn288 = function ( attributes ) {
5247
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
5250
PHP.Parser.prototype.yyn289 = function ( attributes ) {
5251
this.yyval = this.Node_Scalar_LNumber(this.Scalar_LNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes);
5254
PHP.Parser.prototype.yyn290 = function ( attributes ) {
5255
this.yyval = this.Node_Scalar_DNumber(this.Scalar_DNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes);
5258
PHP.Parser.prototype.yyn291 = function ( attributes ) {
5259
this.yyval = this.Scalar_String_create(this.yyastk[ this.stackPos-(1-1) ], attributes);
5262
PHP.Parser.prototype.yyn292 = function ( attributes ) {
5263
this.yyval = {type: "Node_Scalar_LineConst", attributes: attributes};
5266
PHP.Parser.prototype.yyn293 = function ( attributes ) {
5267
this.yyval = {type: "Node_Scalar_FileConst", attributes: attributes};
5270
PHP.Parser.prototype.yyn294 = function ( attributes ) {
5271
this.yyval = {type: "Node_Scalar_DirConst", attributes: attributes};
5274
PHP.Parser.prototype.yyn295 = function ( attributes ) {
5275
this.yyval = {type: "Node_Scalar_ClassConst", attributes: attributes};
5278
PHP.Parser.prototype.yyn296 = function ( attributes ) {
5279
this.yyval = {type: "Node_Scalar_TraitConst", attributes: attributes};
5282
PHP.Parser.prototype.yyn297 = function ( attributes ) {
5283
this.yyval = {type: "Node_Scalar_MethodConst", attributes: attributes};
5286
PHP.Parser.prototype.yyn298 = function ( attributes ) {
5287
this.yyval = {type: "Node_Scalar_FuncConst", attributes: attributes};
5290
PHP.Parser.prototype.yyn299 = function ( attributes ) {
5291
this.yyval = {type: "Node_Scalar_NSConst", attributes: attributes};
5294
PHP.Parser.prototype.yyn300 = function ( attributes ) {
5295
this.yyval = this.Node_Scalar_String(this.Scalar_String_parseDocString(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ]), attributes);
5298
PHP.Parser.prototype.yyn301 = function ( attributes ) {
5299
this.yyval = this.Node_Scalar_String('', attributes);
5302
PHP.Parser.prototype.yyn302 = function ( attributes ) {
5303
this.yyval = this.Node_Expr_ConstFetch(this.yyastk[ this.stackPos-(1-1) ], attributes);
5306
PHP.Parser.prototype.yyn303 = function ( attributes ) {
5307
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5310
PHP.Parser.prototype.yyn304 = function ( attributes ) {
5311
this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
5314
PHP.Parser.prototype.yyn305 = function ( attributes ) {
5315
this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes);
5318
PHP.Parser.prototype.yyn306 = function ( attributes ) {
5319
this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes);
5322
PHP.Parser.prototype.yyn307 = function ( attributes ) {
5323
this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes);
5326
PHP.Parser.prototype.yyn308 = function ( attributes ) {
5327
this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes);
5330
PHP.Parser.prototype.yyn309 = function ( attributes ) {
5331
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5334
PHP.Parser.prototype.yyn310 = function ( attributes ) {
5335
this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
5338
PHP.Parser.prototype.yyn311 = function ( attributes ) {
5339
; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes);
5342
PHP.Parser.prototype.yyn312 = function ( attributes ) {
5343
; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes);
5346
PHP.Parser.prototype.yyn313 = function ( attributes ) {
5350
PHP.Parser.prototype.yyn314 = function ( attributes ) {
5351
this.yyval = this.yyastk[ this.stackPos-(2-1) ];
5354
PHP.Parser.prototype.yyn315 = function () {
5355
this.yyval = this.yyastk[ this.stackPos ];
5358
PHP.Parser.prototype.yyn316 = function () {
5359
this.yyval = this.yyastk[ this.stackPos ];
5362
PHP.Parser.prototype.yyn317 = function ( attributes ) {
5363
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
5366
PHP.Parser.prototype.yyn318 = function ( attributes ) {
5367
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
5370
PHP.Parser.prototype.yyn319 = function ( attributes ) {
5371
this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes);
5374
PHP.Parser.prototype.yyn320 = function ( attributes ) {
5375
this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes);
5378
PHP.Parser.prototype.yyn321 = function ( attributes ) {
5379
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5382
PHP.Parser.prototype.yyn322 = function ( attributes ) {
5383
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5386
PHP.Parser.prototype.yyn323 = function ( attributes ) {
5387
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5390
PHP.Parser.prototype.yyn324 = function ( attributes ) {
5391
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5394
PHP.Parser.prototype.yyn325 = function ( attributes ) {
5395
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(6-2) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
5398
PHP.Parser.prototype.yyn326 = function ( attributes ) {
5399
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5402
PHP.Parser.prototype.yyn327 = function ( attributes ) {
5403
this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
5406
PHP.Parser.prototype.yyn328 = function ( attributes ) {
5407
this.yyval = this.Node_Expr_MethodCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
5410
PHP.Parser.prototype.yyn329 = function ( attributes ) {
5411
this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5414
PHP.Parser.prototype.yyn330 = function ( attributes ) {
5415
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5418
PHP.Parser.prototype.yyn331 = function ( attributes ) {
5419
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5422
PHP.Parser.prototype.yyn332 = function ( attributes ) {
5423
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5426
PHP.Parser.prototype.yyn333 = function ( attributes ) {
5427
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
5430
PHP.Parser.prototype.yyn334 = function ( attributes ) {
5431
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5434
PHP.Parser.prototype.yyn335 = function ( attributes ) {
5435
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes);
5438
PHP.Parser.prototype.yyn336 = function ( attributes ) {
5439
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5442
PHP.Parser.prototype.yyn337 = function ( attributes ) {
5443
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5446
PHP.Parser.prototype.yyn338 = function ( attributes ) {
5447
this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
5450
PHP.Parser.prototype.yyn339 = function ( attributes ) {
5451
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5454
PHP.Parser.prototype.yyn340 = function ( attributes ) {
5455
this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), attributes);
5458
PHP.Parser.prototype.yyn341 = function ( attributes ) {
5459
this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
5462
PHP.Parser.prototype.yyn342 = function ( attributes ) {
5463
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5466
PHP.Parser.prototype.yyn343 = function ( attributes ) {
5467
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5470
PHP.Parser.prototype.yyn344 = function ( attributes ) {
5471
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5474
PHP.Parser.prototype.yyn345 = function ( attributes ) {
5475
this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
5478
PHP.Parser.prototype.yyn346 = function ( attributes ) {
5479
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
5482
PHP.Parser.prototype.yyn347 = function ( attributes ) {
5483
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes);
5486
PHP.Parser.prototype.yyn348 = function ( attributes ) {
5490
PHP.Parser.prototype.yyn349 = function ( attributes ) {
5491
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5494
PHP.Parser.prototype.yyn350 = function ( attributes ) {
5495
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5498
PHP.Parser.prototype.yyn351 = function ( attributes ) {
5499
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
5502
PHP.Parser.prototype.yyn352 = function ( attributes ) {
5503
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5506
PHP.Parser.prototype.yyn353 = function ( attributes ) {
5507
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
5510
PHP.Parser.prototype.yyn354 = function ( attributes ) {
5511
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
5514
PHP.Parser.prototype.yyn355 = function ( attributes ) {
5515
this.yyval = this.yyastk[ this.stackPos-(1-1) ];
5518
PHP.Parser.prototype.yyn356 = function ( attributes ) {
5519
this.yyval = this.yyastk[ this.stackPos-(4-3) ];
5522
PHP.Parser.prototype.yyn357 = function ( attributes ) {
5526
PHP.Parser.prototype.yyn358 = function ( attributes ) {
5530
PHP.Parser.prototype.yyn359 = function ( attributes ) {
5531
this.yyval = this.yyastk[ this.stackPos-(2-1) ];
5534
PHP.Parser.prototype.yyn360 = function ( attributes ) {
5535
this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
5538
PHP.Parser.prototype.yyn361 = function ( attributes ) {
5539
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
5542
PHP.Parser.prototype.yyn362 = function ( attributes ) {
5543
this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes);
5546
PHP.Parser.prototype.yyn363 = function ( attributes ) {
5547
this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes);
5550
PHP.Parser.prototype.yyn364 = function ( attributes ) {
5551
this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(4-4) ], this.yyastk[ this.stackPos-(4-1) ], true, attributes);
5554
PHP.Parser.prototype.yyn365 = function ( attributes ) {
5555
this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(2-2) ], null, true, attributes);
5558
PHP.Parser.prototype.yyn366 = function ( attributes ) {
5559
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
5562
PHP.Parser.prototype.yyn367 = function ( attributes ) {
5563
this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
5566
PHP.Parser.prototype.yyn368 = function ( attributes ) {
5567
this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
5570
PHP.Parser.prototype.yyn369 = function ( attributes ) {
5571
this.yyval = [this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]];
5574
PHP.Parser.prototype.yyn370 = function ( attributes ) {
5575
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
5578
PHP.Parser.prototype.yyn371 = function ( attributes ) {
5579
this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(4-3) ], attributes);
5582
PHP.Parser.prototype.yyn372 = function ( attributes ) {
5583
this.yyval = this.Node_Expr_PropertyFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(3-3) ], attributes);
5586
PHP.Parser.prototype.yyn373 = function ( attributes ) {
5587
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes);
5590
PHP.Parser.prototype.yyn374 = function ( attributes ) {
5591
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes);
5594
PHP.Parser.prototype.yyn375 = function ( attributes ) {
5595
this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(6-2) ], attributes), this.yyastk[ this.stackPos-(6-4) ], attributes);
5598
PHP.Parser.prototype.yyn376 = function ( attributes ) {
5599
this.yyval = this.yyastk[ this.stackPos-(3-2) ];
5602
PHP.Parser.prototype.yyn377 = function ( attributes ) {
5603
this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes);
5606
PHP.Parser.prototype.yyn378 = function ( attributes ) {
5607
this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes);
5610
PHP.Parser.prototype.yyn379 = function ( attributes ) {
5611
this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
5615
PHP.Parser.prototype.Stmt_Namespace_postprocess = function( a ) {
5620
PHP.Parser.prototype.Node_Stmt_Echo = function() {
5622
type: "Node_Stmt_Echo",
5623
exprs: arguments[ 0 ],
5624
attributes: arguments[ 1 ]
5630
PHP.Parser.prototype.Node_Stmt_If = function() {
5632
type: "Node_Stmt_If",
5633
cond: arguments[ 0 ],
5634
stmts: arguments[ 1 ].stmts,
5635
elseifs: arguments[ 1 ].elseifs,
5636
Else: arguments[ 1 ].Else || null,
5637
attributes: arguments[ 2 ]
5643
PHP.Parser.prototype.Node_Stmt_For = function() {
5646
type: "Node_Stmt_For",
5647
init: arguments[ 0 ].init,
5648
cond: arguments[ 0 ].cond,
5649
loop: arguments[ 0 ].loop,
5650
stmts: arguments[ 0 ].stmts,
5651
attributes: arguments[ 1 ]
5656
PHP.Parser.prototype.Node_Stmt_Function = function() {
5658
type: "Node_Stmt_Function",
5659
name: arguments[ 0 ],
5660
byRef: arguments[ 1 ].byRef,
5661
params: arguments[ 1 ].params,
5662
stmts: arguments[ 1 ].stmts,
5663
attributes: arguments[ 2 ]
5668
PHP.Parser.prototype.Stmt_Class_verifyModifier = function() {
5673
PHP.Parser.prototype.Node_Stmt_Class = function() {
5675
type: "Node_Stmt_Class",
5676
name: arguments[ 0 ],
5677
Type: arguments[ 1 ].type,
5678
Extends: arguments[ 1 ].Extends,
5679
Implements: arguments[ 1 ].Implements,
5680
stmts: arguments[ 1 ].stmts,
5681
attributes: arguments[ 2 ]
5686
PHP.Parser.prototype.Node_Stmt_ClassMethod = function() {
5688
type: "Node_Stmt_ClassMethod",
5689
name: arguments[ 0 ],
5690
Type: arguments[ 1 ].type,
5691
byRef: arguments[ 1 ].byRef,
5692
params: arguments[ 1 ].params,
5693
stmts: arguments[ 1 ].stmts,
5694
attributes: arguments[ 2 ]
5700
PHP.Parser.prototype.Node_Stmt_ClassConst = function() {
5702
type: "Node_Stmt_ClassConst",
5703
consts: arguments[ 0 ],
5704
attributes: arguments[ 1 ]
5709
PHP.Parser.prototype.Node_Stmt_Interface = function() {
5711
type: "Node_Stmt_Interface",
5712
name: arguments[ 0 ],
5713
Extends: arguments[ 1 ].Extends,
5714
stmts: arguments[ 1 ].stmts,
5715
attributes: arguments[ 2 ]
5720
PHP.Parser.prototype.Node_Stmt_Throw = function() {
5722
type: "Node_Stmt_Throw",
5723
expr: arguments[ 0 ],
5724
attributes: arguments[ 1 ]
5729
PHP.Parser.prototype.Node_Stmt_Catch = function() {
5731
type: "Node_Stmt_Catch",
5732
Type: arguments[ 0 ],
5733
variable: arguments[ 1 ],
5734
stmts: arguments[ 2 ],
5735
attributes: arguments[ 3 ]
5741
PHP.Parser.prototype.Node_Stmt_TryCatch = function() {
5743
type: "Node_Stmt_TryCatch",
5744
stmts: arguments[ 0 ],
5745
catches: arguments[ 1 ],
5746
attributes: arguments[ 2 ]
5752
PHP.Parser.prototype.Node_Stmt_Foreach = function() {
5754
type: "Node_Stmt_Foreach",
5755
expr: arguments[ 0 ],
5756
valueVar: arguments[ 1 ],
5757
keyVar: arguments[ 2 ].keyVar,
5758
byRef: arguments[ 2 ].byRef,
5759
stmts: arguments[ 2 ].stmts,
5760
attributes: arguments[ 3 ]
5765
PHP.Parser.prototype.Node_Stmt_While = function() {
5767
type: "Node_Stmt_While",
5768
cond: arguments[ 0 ],
5769
stmts: arguments[ 1 ],
5770
attributes: arguments[ 2 ]
5775
PHP.Parser.prototype.Node_Stmt_Do = function() {
5777
type: "Node_Stmt_Do",
5778
cond: arguments[ 0 ],
5779
stmts: arguments[ 1 ],
5780
attributes: arguments[ 2 ]
5785
PHP.Parser.prototype.Node_Stmt_Break = function() {
5787
type: "Node_Stmt_Break",
5788
num: arguments[ 0 ],
5789
attributes: arguments[ 1 ]
5794
PHP.Parser.prototype.Node_Stmt_Continue = function() {
5796
type: "Node_Stmt_Continue",
5797
num: arguments[ 0 ],
5798
attributes: arguments[ 1 ]
5803
PHP.Parser.prototype.Node_Stmt_Return = function() {
5805
type: "Node_Stmt_Return",
5806
expr: arguments[ 0 ],
5807
attributes: arguments[ 1 ]
5812
PHP.Parser.prototype.Node_Stmt_Case = function() {
5814
type: "Node_Stmt_Case",
5815
cond: arguments[ 0 ],
5816
stmts: arguments[ 1 ],
5817
attributes: arguments[ 2 ]
5822
PHP.Parser.prototype.Node_Stmt_Switch = function() {
5824
type: "Node_Stmt_Switch",
5825
cond: arguments[ 0 ],
5826
cases: arguments[ 1 ],
5827
attributes: arguments[ 2 ]
5832
PHP.Parser.prototype.Node_Stmt_Else = function() {
5835
type: "Node_Stmt_Else",
5836
stmts: arguments[ 0 ],
5837
attributes: arguments[ 1 ]
5842
PHP.Parser.prototype.Node_Stmt_ElseIf = function() {
5844
type: "Node_Stmt_ElseIf",
5845
cond: arguments[ 0 ],
5846
stmts: arguments[ 1 ],
5847
attributes: arguments[ 1 ]
5852
PHP.Parser.prototype.Node_Stmt_InlineHTML = function() {
5854
type: "Node_Stmt_InlineHTML",
5855
value: arguments[ 0 ],
5856
attributes: arguments[ 1 ]
5862
PHP.Parser.prototype.Node_Stmt_StaticVar = function() {
5864
type: "Node_Stmt_StaticVar",
5865
name: arguments[ 0 ],
5866
def: arguments[ 1 ],
5867
attributes: arguments[ 2 ]
5873
PHP.Parser.prototype.Node_Stmt_Static = function() {
5875
type: "Node_Stmt_Static",
5876
vars: arguments[ 0 ],
5877
attributes: arguments[ 1 ]
5882
PHP.Parser.prototype.Node_Stmt_Global = function() {
5884
type: "Node_Stmt_Global",
5885
vars: arguments[ 0 ],
5886
attributes: arguments[ 1 ]
5892
PHP.Parser.prototype.Node_Stmt_PropertyProperty = function() {
5894
type: "Node_Stmt_PropertyProperty",
5895
name: arguments[ 0 ],
5896
def: arguments[ 1 ],
5897
attributes: arguments[ 2 ]
5903
PHP.Parser.prototype.Node_Stmt_Property = function() {
5905
type: "Node_Stmt_Property",
5906
Type: arguments[ 0 ],
5907
props: arguments[ 1 ],
5908
attributes: arguments[ 2 ]
5913
PHP.Parser.prototype.Node_Stmt_Unset = function() {
5915
type: "Node_Stmt_Unset",
5916
variables: arguments[ 0 ],
5917
attributes: arguments[ 1 ]
5923
PHP.Parser.prototype.Node_Expr_Variable = function( a ) {
5925
type: "Node_Expr_Variable",
5926
name: arguments[ 0 ],
5927
attributes: arguments[ 1 ]
5931
PHP.Parser.prototype.Node_Expr_FuncCall = function() {
5934
type: "Node_Expr_FuncCall",
5935
func: arguments[ 0 ],
5936
args: arguments[ 1 ],
5937
attributes: arguments[ 2 ]
5942
PHP.Parser.prototype.Node_Expr_MethodCall = function() {
5945
type: "Node_Expr_MethodCall",
5946
variable: arguments[ 0 ],
5947
name: arguments[ 1 ],
5948
args: arguments[ 2 ],
5949
attributes: arguments[ 3 ]
5954
PHP.Parser.prototype.Node_Expr_StaticCall = function() {
5957
type: "Node_Expr_StaticCall",
5958
Class: arguments[ 0 ],
5959
func: arguments[ 1 ],
5960
args: arguments[ 2 ],
5961
attributes: arguments[ 3 ]
5967
PHP.Parser.prototype.Node_Expr_Ternary = function() {
5970
type: "Node_Expr_Ternary",
5971
cond: arguments[ 0 ],
5973
Else: arguments[ 2 ],
5974
attributes: arguments[ 3 ]
5979
PHP.Parser.prototype.Node_Expr_AssignList = function() {
5982
type: "Node_Expr_AssignList",
5983
assignList: arguments[ 0 ],
5984
expr: arguments[ 1 ],
5985
attributes: arguments[ 2 ]
5991
PHP.Parser.prototype.Node_Expr_Assign = function() {
5994
type: "Node_Expr_Assign",
5995
variable: arguments[ 0 ],
5996
expr: arguments[ 1 ],
5997
attributes: arguments[ 2 ]
6002
PHP.Parser.prototype.Node_Expr_AssignConcat = function() {
6005
type: "Node_Expr_AssignConcat",
6006
variable: arguments[ 0 ],
6007
expr: arguments[ 1 ],
6008
attributes: arguments[ 2 ]
6013
PHP.Parser.prototype.Node_Expr_AssignMinus = function() {
6016
type: "Node_Expr_AssignMinus",
6017
variable: arguments[ 0 ],
6018
expr: arguments[ 1 ],
6019
attributes: arguments[ 2 ]
6024
PHP.Parser.prototype.Node_Expr_AssignPlus = function() {
6027
type: "Node_Expr_AssignPlus",
6028
variable: arguments[ 0 ],
6029
expr: arguments[ 1 ],
6030
attributes: arguments[ 2 ]
6035
PHP.Parser.prototype.Node_Expr_AssignDiv = function() {
6038
type: "Node_Expr_AssignDiv",
6039
variable: arguments[ 0 ],
6040
expr: arguments[ 1 ],
6041
attributes: arguments[ 2 ]
6046
PHP.Parser.prototype.Node_Expr_AssignRef = function() {
6049
type: "Node_Expr_AssignRef",
6050
variable: arguments[ 0 ],
6051
refVar: arguments[ 1 ],
6052
attributes: arguments[ 2 ]
6057
PHP.Parser.prototype.Node_Expr_AssignMul = function() {
6060
type: "Node_Expr_AssignMul",
6061
variable: arguments[ 0 ],
6062
expr: arguments[ 1 ],
6063
attributes: arguments[ 2 ]
6068
PHP.Parser.prototype.Node_Expr_AssignMod = function() {
6071
type: "Node_Expr_AssignMod",
6072
variable: arguments[ 0 ],
6073
expr: arguments[ 1 ],
6074
attributes: arguments[ 2 ]
6079
PHP.Parser.prototype.Node_Expr_Plus = function() {
6082
type: "Node_Expr_Plus",
6083
left: arguments[ 0 ],
6084
right: arguments[ 1 ],
6085
attributes: arguments[ 2 ]
6090
PHP.Parser.prototype.Node_Expr_Minus = function() {
6093
type: "Node_Expr_Minus",
6094
left: arguments[ 0 ],
6095
right: arguments[ 1 ],
6096
attributes: arguments[ 2 ]
6102
PHP.Parser.prototype.Node_Expr_Mul = function() {
6105
type: "Node_Expr_Mul",
6106
left: arguments[ 0 ],
6107
right: arguments[ 1 ],
6108
attributes: arguments[ 2 ]
6114
PHP.Parser.prototype.Node_Expr_Div = function() {
6117
type: "Node_Expr_Div",
6118
left: arguments[ 0 ],
6119
right: arguments[ 1 ],
6120
attributes: arguments[ 2 ]
6126
PHP.Parser.prototype.Node_Expr_Mod = function() {
6129
type: "Node_Expr_Mod",
6130
left: arguments[ 0 ],
6131
right: arguments[ 1 ],
6132
attributes: arguments[ 2 ]
6137
PHP.Parser.prototype.Node_Expr_Greater = function() {
6140
type: "Node_Expr_Greater",
6141
left: arguments[ 0 ],
6142
right: arguments[ 1 ],
6143
attributes: arguments[ 2 ]
6148
PHP.Parser.prototype.Node_Expr_Equal = function() {
6151
type: "Node_Expr_Equal",
6152
left: arguments[ 0 ],
6153
right: arguments[ 1 ],
6154
attributes: arguments[ 2 ]
6159
PHP.Parser.prototype.Node_Expr_NotEqual = function() {
6162
type: "Node_Expr_NotEqual",
6163
left: arguments[ 0 ],
6164
right: arguments[ 1 ],
6165
attributes: arguments[ 2 ]
6171
PHP.Parser.prototype.Node_Expr_Identical = function() {
6174
type: "Node_Expr_Identical",
6175
left: arguments[ 0 ],
6176
right: arguments[ 1 ],
6177
attributes: arguments[ 2 ]
6183
PHP.Parser.prototype.Node_Expr_NotIdentical = function() {
6186
type: "Node_Expr_NotIdentical",
6187
left: arguments[ 0 ],
6188
right: arguments[ 1 ],
6189
attributes: arguments[ 2 ]
6194
PHP.Parser.prototype.Node_Expr_GreaterOrEqual = function() {
6197
type: "Node_Expr_GreaterOrEqual",
6198
left: arguments[ 0 ],
6199
right: arguments[ 1 ],
6200
attributes: arguments[ 2 ]
6205
PHP.Parser.prototype.Node_Expr_SmallerOrEqual = function() {
6208
type: "Node_Expr_SmallerOrEqual",
6209
left: arguments[ 0 ],
6210
right: arguments[ 1 ],
6211
attributes: arguments[ 2 ]
6216
PHP.Parser.prototype.Node_Expr_Concat = function() {
6219
type: "Node_Expr_Concat",
6220
left: arguments[ 0 ],
6221
right: arguments[ 1 ],
6222
attributes: arguments[ 2 ]
6227
PHP.Parser.prototype.Node_Expr_Smaller = function() {
6230
type: "Node_Expr_Smaller",
6231
left: arguments[ 0 ],
6232
right: arguments[ 1 ],
6233
attributes: arguments[ 2 ]
6238
PHP.Parser.prototype.Node_Expr_PostInc = function() {
6241
type: "Node_Expr_PostInc",
6242
variable: arguments[ 0 ],
6243
attributes: arguments[ 1 ]
6248
PHP.Parser.prototype.Node_Expr_PostDec = function() {
6251
type: "Node_Expr_PostDec",
6252
variable: arguments[ 0 ],
6253
attributes: arguments[ 1 ]
6258
PHP.Parser.prototype.Node_Expr_PreInc = function() {
6261
type: "Node_Expr_PreInc",
6262
variable: arguments[ 0 ],
6263
attributes: arguments[ 1 ]
6268
PHP.Parser.prototype.Node_Expr_PreDec = function() {
6271
type: "Node_Expr_PreDec",
6272
variable: arguments[ 0 ],
6273
attributes: arguments[ 1 ]
6278
PHP.Parser.prototype.Node_Expr_Include = function() {
6280
expr: arguments[ 0 ],
6281
type: arguments[ 1 ],
6282
attributes: arguments[ 2 ]
6286
PHP.Parser.prototype.Node_Expr_ArrayDimFetch = function() {
6289
type: "Node_Expr_ArrayDimFetch",
6290
variable: arguments[ 0 ],
6291
dim: arguments[ 1 ],
6292
attributes: arguments[ 2 ]
6297
PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() {
6300
type: "Node_Expr_StaticPropertyFetch",
6301
Class: arguments[ 0 ],
6302
name: arguments[ 1 ],
6303
attributes: arguments[ 2 ]
6308
PHP.Parser.prototype.Node_Expr_ClassConstFetch = function() {
6311
type: "Node_Expr_ClassConstFetch",
6312
Class: arguments[ 0 ],
6313
name: arguments[ 1 ],
6314
attributes: arguments[ 2 ]
6320
PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() {
6323
type: "Node_Expr_StaticPropertyFetch",
6324
Class: arguments[ 0 ],
6325
name: arguments[ 1 ],
6326
attributes: arguments[ 2 ]
6331
PHP.Parser.prototype.Node_Expr_ConstFetch = function() {
6334
type: "Node_Expr_ConstFetch",
6335
name: arguments[ 0 ],
6336
attributes: arguments[ 1 ]
6341
PHP.Parser.prototype.Node_Expr_ArrayItem = function() {
6344
type: "Node_Expr_ArrayItem",
6345
value: arguments[ 0 ],
6346
key: arguments[ 1 ],
6347
byRef: arguments[ 2 ],
6348
attributes: arguments[ 3 ]
6353
PHP.Parser.prototype.Node_Expr_Array = function() {
6356
type: "Node_Expr_Array",
6357
items: arguments[ 0 ],
6358
attributes: arguments[ 1 ]
6363
PHP.Parser.prototype.Node_Expr_PropertyFetch = function() {
6366
type: "Node_Expr_PropertyFetch",
6367
variable: arguments[ 0 ],
6368
name: arguments[ 1 ],
6369
attributes: arguments[ 2 ]
6374
PHP.Parser.prototype.Node_Expr_New = function() {
6377
type: "Node_Expr_New",
6378
Class: arguments[ 0 ],
6379
args: arguments[ 1 ],
6380
attributes: arguments[ 2 ]
6386
PHP.Parser.prototype.Node_Expr_Print = function() {
6388
type: "Node_Expr_Print",
6389
expr: arguments[ 0 ],
6390
attributes: arguments[ 1 ]
6396
PHP.Parser.prototype.Node_Expr_Exit = function() {
6398
type: "Node_Expr_Exit",
6399
expr: arguments[ 0 ],
6400
attributes: arguments[ 1 ]
6406
PHP.Parser.prototype.Node_Expr_Cast_Bool = function() {
6408
type: "Node_Expr_Cast_Bool",
6409
expr: arguments[ 0 ],
6410
attributes: arguments[ 1 ]
6415
PHP.Parser.prototype.Node_Expr_Cast_Int = function() {
6417
type: "Node_Expr_Cast_Int",
6418
expr: arguments[ 0 ],
6419
attributes: arguments[ 1 ]
6424
PHP.Parser.prototype.Node_Expr_Cast_String = function() {
6426
type: "Node_Expr_Cast_String",
6427
expr: arguments[ 0 ],
6428
attributes: arguments[ 1 ]
6433
PHP.Parser.prototype.Node_Expr_Cast_Double = function() {
6435
type: "Node_Expr_Cast_Double",
6436
expr: arguments[ 0 ],
6437
attributes: arguments[ 1 ]
6442
PHP.Parser.prototype.Node_Expr_Cast_Array = function() {
6444
type: "Node_Expr_Cast_Array",
6445
expr: arguments[ 0 ],
6446
attributes: arguments[ 1 ]
6451
PHP.Parser.prototype.Node_Expr_Cast_Object = function() {
6453
type: "Node_Expr_Cast_Object",
6454
expr: arguments[ 0 ],
6455
attributes: arguments[ 1 ]
6461
PHP.Parser.prototype.Node_Expr_ErrorSuppress = function() {
6463
type: "Node_Expr_ErrorSuppress",
6464
expr: arguments[ 0 ],
6465
attributes: arguments[ 1 ]
6471
PHP.Parser.prototype.Node_Expr_Isset = function() {
6473
type: "Node_Expr_Isset",
6474
variables: arguments[ 0 ],
6475
attributes: arguments[ 1 ]
6483
PHP.Parser.prototype.Node_Expr_UnaryMinus = function() {
6485
type: "Node_Expr_UnaryMinus",
6486
expr: arguments[ 0 ],
6487
attributes: arguments[ 1 ]
6493
PHP.Parser.prototype.Node_Expr_UnaryPlus = function() {
6495
type: "Node_Expr_UnaryPlus",
6496
expr: arguments[ 0 ],
6497
attributes: arguments[ 1 ]
6502
PHP.Parser.prototype.Node_Expr_Empty = function() {
6504
type: "Node_Expr_Empty",
6505
variable: arguments[ 0 ],
6506
attributes: arguments[ 1 ]
6511
PHP.Parser.prototype.Node_Expr_BooleanOr = function() {
6513
type: "Node_Expr_BooleanOr",
6514
left: arguments[ 0 ],
6515
right: arguments[ 1 ],
6516
attributes: arguments[ 2 ]
6521
PHP.Parser.prototype.Node_Expr_LogicalOr = function() {
6523
type: "Node_Expr_LogicalOr",
6524
left: arguments[ 0 ],
6525
right: arguments[ 1 ],
6526
attributes: arguments[ 2 ]
6531
PHP.Parser.prototype.Node_Expr_LogicalAnd = function() {
6533
type: "Node_Expr_LogicalAnd",
6534
left: arguments[ 0 ],
6535
right: arguments[ 1 ],
6536
attributes: arguments[ 2 ]
6542
PHP.Parser.prototype.Node_Expr_LogicalXor = function() {
6544
type: "Node_Expr_LogicalXor",
6545
left: arguments[ 0 ],
6546
right: arguments[ 1 ],
6547
attributes: arguments[ 2 ]
6552
PHP.Parser.prototype.Node_Expr_BitwiseAnd = function() {
6554
type: "Node_Expr_BitwiseAnd",
6555
left: arguments[ 0 ],
6556
right: arguments[ 1 ],
6557
attributes: arguments[ 2 ]
6562
PHP.Parser.prototype.Node_Expr_BitwiseOr = function() {
6564
type: "Node_Expr_BitwiseOr",
6565
left: arguments[ 0 ],
6566
right: arguments[ 1 ],
6567
attributes: arguments[ 2 ]
6572
PHP.Parser.prototype.Node_Expr_BitwiseNot = function() {
6574
type: "Node_Expr_BitwiseNot",
6575
expr: arguments[ 0 ],
6576
attributes: arguments[ 1 ]
6581
PHP.Parser.prototype.Node_Expr_BooleanNot = function() {
6583
type: "Node_Expr_BooleanNot",
6584
expr: arguments[ 0 ],
6585
attributes: arguments[ 1 ]
6590
PHP.Parser.prototype.Node_Expr_BooleanAnd = function() {
6592
type: "Node_Expr_BooleanAnd",
6593
left: arguments[ 0 ],
6594
right: arguments[ 1 ],
6595
attributes: arguments[ 2 ]
6600
PHP.Parser.prototype.Node_Expr_Instanceof = function() {
6603
type: "Node_Expr_Instanceof",
6604
left: arguments[ 0 ],
6605
right: arguments[ 1 ],
6606
attributes: arguments[ 2 ]
6611
PHP.Parser.prototype.Node_Expr_Clone = function() {
6614
type: "Node_Expr_Clone",
6615
expr: arguments[ 0 ],
6616
attributes: arguments[ 1 ]
6623
PHP.Parser.prototype.Scalar_LNumber_parse = function( a ) {
6628
PHP.Parser.prototype.Scalar_DNumber_parse = function( a ) {
6633
PHP.Parser.prototype.Scalar_String_parseDocString = function() {
6635
return '"' + arguments[ 1 ].replace(/([^"\\]*(?:\\.[^"\\]*)*)"/g, '$1\\"') + '"';
6639
PHP.Parser.prototype.Node_Scalar_String = function( ) {
6642
type: "Node_Scalar_String",
6643
value: arguments[ 0 ],
6644
attributes: arguments[ 1 ]
6649
PHP.Parser.prototype.Scalar_String_create = function( ) {
6651
type: "Node_Scalar_String",
6652
value: arguments[ 0 ],
6653
attributes: arguments[ 1 ]
6658
PHP.Parser.prototype.Node_Scalar_LNumber = function() {
6661
type: "Node_Scalar_LNumber",
6662
value: arguments[ 0 ],
6663
attributes: arguments[ 1 ]
6669
PHP.Parser.prototype.Node_Scalar_DNumber = function() {
6672
type: "Node_Scalar_DNumber",
6673
value: arguments[ 0 ],
6674
attributes: arguments[ 1 ]
6680
PHP.Parser.prototype.Node_Scalar_Encapsed = function() {
6683
type: "Node_Scalar_Encapsed",
6684
parts: arguments[ 0 ],
6685
attributes: arguments[ 1 ]
6690
PHP.Parser.prototype.Node_Name = function() {
6694
parts: arguments[ 0 ],
6695
attributes: arguments[ 1 ]
6700
PHP.Parser.prototype.Node_Param = function() {
6704
name: arguments[ 0 ],
6705
def: arguments[ 1 ],
6706
Type: arguments[ 2 ],
6707
byRef: arguments[ 3 ],
6708
attributes: arguments[ 4 ]
6713
PHP.Parser.prototype.Node_Arg = function() {
6717
value: arguments[ 0 ],
6718
byRef: arguments[ 1 ],
6719
attributes: arguments[ 2 ]
6725
PHP.Parser.prototype.Node_Const = function() {
6729
name: arguments[ 0 ],
6730
value: arguments[ 1 ],
6731
attributes: arguments[ 2 ]