react-native-divkit 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +340 -0
  3. package/dist/DivKit.d.ts +68 -0
  4. package/dist/DivKit.d.ts.map +1 -0
  5. package/dist/DivKit.js +400 -0
  6. package/dist/DivKit.js.map +1 -0
  7. package/dist/actions/array.d.ts +8 -0
  8. package/dist/actions/array.d.ts.map +1 -0
  9. package/dist/actions/array.js +139 -0
  10. package/dist/actions/array.js.map +1 -0
  11. package/dist/actions/copyToClipboard.d.ts +22 -0
  12. package/dist/actions/copyToClipboard.d.ts.map +1 -0
  13. package/dist/actions/copyToClipboard.js +63 -0
  14. package/dist/actions/copyToClipboard.js.map +1 -0
  15. package/dist/actions/dict.d.ts +6 -0
  16. package/dist/actions/dict.d.ts.map +1 -0
  17. package/dist/actions/dict.js +58 -0
  18. package/dist/actions/dict.js.map +1 -0
  19. package/dist/actions/index.d.ts +11 -0
  20. package/dist/actions/index.d.ts.map +1 -0
  21. package/dist/actions/index.js +11 -0
  22. package/dist/actions/index.js.map +1 -0
  23. package/dist/actions/updateStructure.d.ts +6 -0
  24. package/dist/actions/updateStructure.d.ts.map +1 -0
  25. package/dist/actions/updateStructure.js +116 -0
  26. package/dist/actions/updateStructure.js.map +1 -0
  27. package/dist/components/DivComponent.d.ts +29 -0
  28. package/dist/components/DivComponent.d.ts.map +1 -0
  29. package/dist/components/DivComponent.js +62 -0
  30. package/dist/components/DivComponent.js.map +1 -0
  31. package/dist/components/container/DivContainer.d.ts +26 -0
  32. package/dist/components/container/DivContainer.d.ts.map +1 -0
  33. package/dist/components/container/DivContainer.js +172 -0
  34. package/dist/components/container/DivContainer.js.map +1 -0
  35. package/dist/components/container/index.d.ts +3 -0
  36. package/dist/components/container/index.d.ts.map +1 -0
  37. package/dist/components/container/index.js +2 -0
  38. package/dist/components/container/index.js.map +1 -0
  39. package/dist/components/image/DivImage.d.ts +29 -0
  40. package/dist/components/image/DivImage.d.ts.map +1 -0
  41. package/dist/components/image/DivImage.js +122 -0
  42. package/dist/components/image/DivImage.js.map +1 -0
  43. package/dist/components/image/index.d.ts +3 -0
  44. package/dist/components/image/index.d.ts.map +1 -0
  45. package/dist/components/image/index.js +2 -0
  46. package/dist/components/image/index.js.map +1 -0
  47. package/dist/components/index.d.ts +14 -0
  48. package/dist/components/index.d.ts.map +1 -0
  49. package/dist/components/index.js +11 -0
  50. package/dist/components/index.js.map +1 -0
  51. package/dist/components/state/DivState.d.ts +26 -0
  52. package/dist/components/state/DivState.d.ts.map +1 -0
  53. package/dist/components/state/DivState.js +121 -0
  54. package/dist/components/state/DivState.js.map +1 -0
  55. package/dist/components/state/index.d.ts +3 -0
  56. package/dist/components/state/index.d.ts.map +1 -0
  57. package/dist/components/state/index.js +2 -0
  58. package/dist/components/state/index.js.map +1 -0
  59. package/dist/components/text/DivText.d.ts +28 -0
  60. package/dist/components/text/DivText.d.ts.map +1 -0
  61. package/dist/components/text/DivText.js +143 -0
  62. package/dist/components/text/DivText.js.map +1 -0
  63. package/dist/components/text/index.d.ts +3 -0
  64. package/dist/components/text/index.d.ts.map +1 -0
  65. package/dist/components/text/index.js +2 -0
  66. package/dist/components/text/index.js.map +1 -0
  67. package/dist/components/utilities/Outer.d.ts +17 -0
  68. package/dist/components/utilities/Outer.d.ts.map +1 -0
  69. package/dist/components/utilities/Outer.js +210 -0
  70. package/dist/components/utilities/Outer.js.map +1 -0
  71. package/dist/components/utilities/Unknown.d.ts +11 -0
  72. package/dist/components/utilities/Unknown.d.ts.map +1 -0
  73. package/dist/components/utilities/Unknown.js +50 -0
  74. package/dist/components/utilities/Unknown.js.map +1 -0
  75. package/dist/components/utilities/index.d.ts +5 -0
  76. package/dist/components/utilities/index.d.ts.map +1 -0
  77. package/dist/components/utilities/index.js +3 -0
  78. package/dist/components/utilities/index.js.map +1 -0
  79. package/dist/context/ActionContext.d.ts +25 -0
  80. package/dist/context/ActionContext.d.ts.map +1 -0
  81. package/dist/context/ActionContext.js +20 -0
  82. package/dist/context/ActionContext.js.map +1 -0
  83. package/dist/context/DivKitContext.d.ts +33 -0
  84. package/dist/context/DivKitContext.d.ts.map +1 -0
  85. package/dist/context/DivKitContext.js +14 -0
  86. package/dist/context/DivKitContext.js.map +1 -0
  87. package/dist/context/EnabledContext.d.ts +31 -0
  88. package/dist/context/EnabledContext.d.ts.map +1 -0
  89. package/dist/context/EnabledContext.js +31 -0
  90. package/dist/context/EnabledContext.js.map +1 -0
  91. package/dist/context/StateContext.d.ts +57 -0
  92. package/dist/context/StateContext.d.ts.map +1 -0
  93. package/dist/context/StateContext.js +20 -0
  94. package/dist/context/StateContext.js.map +1 -0
  95. package/dist/context/index.d.ts +9 -0
  96. package/dist/context/index.d.ts.map +1 -0
  97. package/dist/context/index.js +9 -0
  98. package/dist/context/index.js.map +1 -0
  99. package/dist/expressions/bigint.d.ts +8 -0
  100. package/dist/expressions/bigint.d.ts.map +1 -0
  101. package/dist/expressions/bigint.js +31 -0
  102. package/dist/expressions/bigint.js.map +1 -0
  103. package/dist/expressions/const.d.ts +15 -0
  104. package/dist/expressions/const.d.ts.map +1 -0
  105. package/dist/expressions/const.js +15 -0
  106. package/dist/expressions/const.js.map +1 -0
  107. package/dist/expressions/eval.d.ts +77 -0
  108. package/dist/expressions/eval.d.ts.map +1 -0
  109. package/dist/expressions/eval.js +459 -0
  110. package/dist/expressions/eval.js.map +1 -0
  111. package/dist/expressions/expressions.d.ts +7 -0
  112. package/dist/expressions/expressions.d.ts.map +1 -0
  113. package/dist/expressions/expressions.js +3191 -0
  114. package/dist/expressions/expressions.js.map +1 -0
  115. package/dist/expressions/funcs/array.d.ts +2 -0
  116. package/dist/expressions/funcs/array.d.ts.map +1 -0
  117. package/dist/expressions/funcs/array.js +381 -0
  118. package/dist/expressions/funcs/array.js.map +1 -0
  119. package/dist/expressions/funcs/colors.d.ts +2 -0
  120. package/dist/expressions/funcs/colors.d.ts.map +1 -0
  121. package/dist/expressions/funcs/colors.js +75 -0
  122. package/dist/expressions/funcs/colors.js.map +1 -0
  123. package/dist/expressions/funcs/customFuncs.d.ts +8 -0
  124. package/dist/expressions/funcs/customFuncs.d.ts.map +1 -0
  125. package/dist/expressions/funcs/customFuncs.js +114 -0
  126. package/dist/expressions/funcs/customFuncs.js.map +1 -0
  127. package/dist/expressions/funcs/datetime.d.ts +2 -0
  128. package/dist/expressions/funcs/datetime.d.ts.map +1 -0
  129. package/dist/expressions/funcs/datetime.js +182 -0
  130. package/dist/expressions/funcs/datetime.js.map +1 -0
  131. package/dist/expressions/funcs/dict.d.ts +2 -0
  132. package/dist/expressions/funcs/dict.d.ts.map +1 -0
  133. package/dist/expressions/funcs/dict.js +170 -0
  134. package/dist/expressions/funcs/dict.js.map +1 -0
  135. package/dist/expressions/funcs/funcs.d.ts +80 -0
  136. package/dist/expressions/funcs/funcs.d.ts.map +1 -0
  137. package/dist/expressions/funcs/funcs.js +146 -0
  138. package/dist/expressions/funcs/funcs.js.map +1 -0
  139. package/dist/expressions/funcs/index.d.ts +2 -0
  140. package/dist/expressions/funcs/index.d.ts.map +1 -0
  141. package/dist/expressions/funcs/index.js +23 -0
  142. package/dist/expressions/funcs/index.js.map +1 -0
  143. package/dist/expressions/funcs/interval.d.ts +2 -0
  144. package/dist/expressions/funcs/interval.d.ts.map +1 -0
  145. package/dist/expressions/funcs/interval.js +61 -0
  146. package/dist/expressions/funcs/interval.js.map +1 -0
  147. package/dist/expressions/funcs/math.d.ts +2 -0
  148. package/dist/expressions/funcs/math.d.ts.map +1 -0
  149. package/dist/expressions/funcs/math.js +324 -0
  150. package/dist/expressions/funcs/math.js.map +1 -0
  151. package/dist/expressions/funcs/std.d.ts +2 -0
  152. package/dist/expressions/funcs/std.d.ts.map +1 -0
  153. package/dist/expressions/funcs/std.js +293 -0
  154. package/dist/expressions/funcs/std.js.map +1 -0
  155. package/dist/expressions/funcs/stored.d.ts +4 -0
  156. package/dist/expressions/funcs/stored.d.ts.map +1 -0
  157. package/dist/expressions/funcs/stored.js +62 -0
  158. package/dist/expressions/funcs/stored.js.map +1 -0
  159. package/dist/expressions/funcs/strings.d.ts +2 -0
  160. package/dist/expressions/funcs/strings.d.ts.map +1 -0
  161. package/dist/expressions/funcs/strings.js +158 -0
  162. package/dist/expressions/funcs/strings.js.map +1 -0
  163. package/dist/expressions/funcs/trigonometry.d.ts +2 -0
  164. package/dist/expressions/funcs/trigonometry.d.ts.map +1 -0
  165. package/dist/expressions/funcs/trigonometry.js +92 -0
  166. package/dist/expressions/funcs/trigonometry.js.map +1 -0
  167. package/dist/expressions/json.d.ts +18 -0
  168. package/dist/expressions/json.d.ts.map +1 -0
  169. package/dist/expressions/json.js +271 -0
  170. package/dist/expressions/json.js.map +1 -0
  171. package/dist/expressions/parserCache.d.ts +4 -0
  172. package/dist/expressions/parserCache.d.ts.map +1 -0
  173. package/dist/expressions/parserCache.js +23 -0
  174. package/dist/expressions/parserCache.js.map +1 -0
  175. package/dist/expressions/simpleUnescapeString.d.ts +2 -0
  176. package/dist/expressions/simpleUnescapeString.d.ts.map +1 -0
  177. package/dist/expressions/simpleUnescapeString.js +61 -0
  178. package/dist/expressions/simpleUnescapeString.js.map +1 -0
  179. package/dist/expressions/utils.d.ts +29 -0
  180. package/dist/expressions/utils.d.ts.map +1 -0
  181. package/dist/expressions/utils.js +236 -0
  182. package/dist/expressions/utils.js.map +1 -0
  183. package/dist/expressions/variable.d.ts +82 -0
  184. package/dist/expressions/variable.d.ts.map +1 -0
  185. package/dist/expressions/variable.js +337 -0
  186. package/dist/expressions/variable.js.map +1 -0
  187. package/dist/expressions/walk.d.ts +7 -0
  188. package/dist/expressions/walk.d.ts.map +1 -0
  189. package/dist/expressions/walk.js +39 -0
  190. package/dist/expressions/walk.js.map +1 -0
  191. package/dist/hooks/index.d.ts +8 -0
  192. package/dist/hooks/index.d.ts.map +1 -0
  193. package/dist/hooks/index.js +11 -0
  194. package/dist/hooks/index.js.map +1 -0
  195. package/dist/hooks/useAction.d.ts +102 -0
  196. package/dist/hooks/useAction.d.ts.map +1 -0
  197. package/dist/hooks/useAction.js +116 -0
  198. package/dist/hooks/useAction.js.map +1 -0
  199. package/dist/hooks/useDerivedFromVars.d.ts +72 -0
  200. package/dist/hooks/useDerivedFromVars.d.ts.map +1 -0
  201. package/dist/hooks/useDerivedFromVars.js +100 -0
  202. package/dist/hooks/useDerivedFromVars.js.map +1 -0
  203. package/dist/hooks/useVariable.d.ts +86 -0
  204. package/dist/hooks/useVariable.d.ts.map +1 -0
  205. package/dist/hooks/useVariable.js +130 -0
  206. package/dist/hooks/useVariable.js.map +1 -0
  207. package/dist/index.d.ts +30 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +28 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/stores/createObservable.d.ts +38 -0
  212. package/dist/stores/createObservable.d.ts.map +1 -0
  213. package/dist/stores/createObservable.js +49 -0
  214. package/dist/stores/createObservable.js.map +1 -0
  215. package/dist/utils/applyTemplate.d.ts +8 -0
  216. package/dist/utils/applyTemplate.d.ts.map +1 -0
  217. package/dist/utils/applyTemplate.js +94 -0
  218. package/dist/utils/applyTemplate.js.map +1 -0
  219. package/dist/utils/correctColor.d.ts +18 -0
  220. package/dist/utils/correctColor.d.ts.map +1 -0
  221. package/dist/utils/correctColor.js +79 -0
  222. package/dist/utils/correctColor.js.map +1 -0
  223. package/dist/utils/escapeRegExp.d.ts +2 -0
  224. package/dist/utils/escapeRegExp.d.ts.map +1 -0
  225. package/dist/utils/escapeRegExp.js +4 -0
  226. package/dist/utils/escapeRegExp.js.map +1 -0
  227. package/dist/utils/formatDate.d.ts +6 -0
  228. package/dist/utils/formatDate.d.ts.map +1 -0
  229. package/dist/utils/formatDate.js +325 -0
  230. package/dist/utils/formatDate.js.map +1 -0
  231. package/dist/utils/padLeft.d.ts +2 -0
  232. package/dist/utils/padLeft.d.ts.map +1 -0
  233. package/dist/utils/padLeft.js +7 -0
  234. package/dist/utils/padLeft.js.map +1 -0
  235. package/dist/utils/uniq.d.ts +2 -0
  236. package/dist/utils/uniq.d.ts.map +1 -0
  237. package/dist/utils/uniq.js +4 -0
  238. package/dist/utils/uniq.js.map +1 -0
  239. package/dist/utils/wrapError.d.ts +10 -0
  240. package/dist/utils/wrapError.d.ts.map +1 -0
  241. package/dist/utils/wrapError.js +9 -0
  242. package/dist/utils/wrapError.js.map +1 -0
  243. package/package.json +58 -0
  244. package/src/DivKit.tsx +542 -0
  245. package/src/actions/array.ts +170 -0
  246. package/src/actions/copyToClipboard.ts +82 -0
  247. package/src/actions/dict.ts +71 -0
  248. package/src/actions/index.ts +11 -0
  249. package/src/actions/updateStructure.ts +134 -0
  250. package/src/components/DivComponent.tsx +75 -0
  251. package/src/components/README.md +230 -0
  252. package/src/components/container/DivContainer.tsx +222 -0
  253. package/src/components/container/index.ts +2 -0
  254. package/src/components/image/DivImage.tsx +172 -0
  255. package/src/components/image/index.ts +2 -0
  256. package/src/components/index.ts +20 -0
  257. package/src/components/state/DivState.tsx +146 -0
  258. package/src/components/state/index.ts +2 -0
  259. package/src/components/text/DivText.tsx +186 -0
  260. package/src/components/text/index.ts +2 -0
  261. package/src/components/utilities/Outer.tsx +239 -0
  262. package/src/components/utilities/README.md +175 -0
  263. package/src/components/utilities/Unknown.tsx +60 -0
  264. package/src/components/utilities/index.ts +4 -0
  265. package/src/context/ActionContext.tsx +37 -0
  266. package/src/context/DivKitContext.tsx +54 -0
  267. package/src/context/EnabledContext.tsx +50 -0
  268. package/src/context/StateContext.tsx +75 -0
  269. package/src/context/index.ts +33 -0
  270. package/src/expressions/ast.d.ts +101 -0
  271. package/src/expressions/bigint.ts +38 -0
  272. package/src/expressions/const.ts +16 -0
  273. package/src/expressions/eval.ts +669 -0
  274. package/src/expressions/expressions.peggy +235 -0
  275. package/src/expressions/expressions.ts +2854 -0
  276. package/src/expressions/funcs/array.ts +412 -0
  277. package/src/expressions/funcs/colors.ts +100 -0
  278. package/src/expressions/funcs/customFuncs.ts +139 -0
  279. package/src/expressions/funcs/datetime.ts +232 -0
  280. package/src/expressions/funcs/dict.ts +207 -0
  281. package/src/expressions/funcs/funcs.ts +323 -0
  282. package/src/expressions/funcs/index.ts +23 -0
  283. package/src/expressions/funcs/interval.ts +76 -0
  284. package/src/expressions/funcs/math.ts +395 -0
  285. package/src/expressions/funcs/std.ts +392 -0
  286. package/src/expressions/funcs/stored.ts +62 -0
  287. package/src/expressions/funcs/strings.ts +200 -0
  288. package/src/expressions/funcs/trigonometry.ts +108 -0
  289. package/src/expressions/json.ts +367 -0
  290. package/src/expressions/parserCache.ts +32 -0
  291. package/src/expressions/simpleUnescapeString.ts +57 -0
  292. package/src/expressions/utils.ts +271 -0
  293. package/src/expressions/variable.ts +429 -0
  294. package/src/expressions/walk.ts +43 -0
  295. package/src/hooks/README.md +265 -0
  296. package/src/hooks/index.ts +28 -0
  297. package/src/hooks/useAction.ts +152 -0
  298. package/src/hooks/useDerivedFromVars.ts +187 -0
  299. package/src/hooks/useVariable.ts +157 -0
  300. package/src/index.ts +97 -0
  301. package/src/stores/createObservable.ts +64 -0
  302. package/src/types/alignment.d.ts +13 -0
  303. package/src/types/background.d.ts +71 -0
  304. package/src/types/base.d.ts +224 -0
  305. package/src/types/border.d.ts +46 -0
  306. package/src/types/componentContext.d.ts +98 -0
  307. package/src/types/container.d.ts +40 -0
  308. package/src/types/edgeInserts.d.ts +9 -0
  309. package/src/types/general.d.ts +3 -0
  310. package/src/types/image.d.ts +33 -0
  311. package/src/types/imageScale.d.ts +1 -0
  312. package/src/types/layoutParams.d.ts +27 -0
  313. package/src/types/sizes.d.ts +37 -0
  314. package/src/types/state.d.ts +19 -0
  315. package/src/types/text.d.ts +126 -0
  316. package/src/utils/applyTemplate.ts +145 -0
  317. package/src/utils/correctColor.ts +102 -0
  318. package/src/utils/escapeRegExp.ts +3 -0
  319. package/src/utils/formatDate.ts +385 -0
  320. package/src/utils/padLeft.ts +6 -0
  321. package/src/utils/uniq.ts +3 -0
  322. package/src/utils/wrapError.ts +21 -0
@@ -0,0 +1,3191 @@
1
+ // @ts-nocheck
2
+ // Generated by Peggy 3.0.2.
3
+ //
4
+ // https://peggyjs.org/
5
+ import { toBigInt } from './bigint';
6
+ function buildConditionalExpression(expr, tail) {
7
+ if (tail && tail[3] && tail[7]) {
8
+ return { type: 'ConditionalExpression', test: expr, consequent: tail[3], alternate: tail[7] };
9
+ }
10
+ return expr;
11
+ }
12
+ function buildTryExpression(expr, tail) {
13
+ if (tail && tail[3]) {
14
+ return { type: 'TryExpression', test: expr, alternate: tail[3] };
15
+ }
16
+ return expr;
17
+ }
18
+ function buildBinaryExpression(head, tail) {
19
+ if (!tail.length) {
20
+ return head;
21
+ }
22
+ return tail.reduce((result, element) => {
23
+ return {
24
+ type: 'BinaryExpression',
25
+ operator: element[1],
26
+ left: result,
27
+ right: element[3]
28
+ };
29
+ }, head);
30
+ }
31
+ function buildLogicalExpression(head, tail) {
32
+ if (!tail.length) {
33
+ return head;
34
+ }
35
+ return tail.reduce((result, element) => {
36
+ return {
37
+ type: 'LogicalExpression',
38
+ operator: element[1],
39
+ left: result,
40
+ right: element[3]
41
+ };
42
+ }, head);
43
+ }
44
+ function buildMethodCall(head, tail) {
45
+ if (!tail.length) {
46
+ return head;
47
+ }
48
+ return tail.reduce((result, element) => {
49
+ if (!element[5]) {
50
+ throw new Error('Method expected after .');
51
+ }
52
+ return {
53
+ type: 'MethodExpression',
54
+ object: result,
55
+ method: element[3],
56
+ arguments: element[5][2]
57
+ };
58
+ }, head);
59
+ }
60
+ function buildVariableOrBoolean(txt) {
61
+ if (txt === 'true' || txt === 'false') {
62
+ return { type: 'BooleanLiteral', value: txt === 'true' };
63
+ }
64
+ return { type: 'Variable', id: { type: 'Identifier', name: txt } };
65
+ }
66
+ function buildString(list) {
67
+ if (list.every(it => typeof it === 'string')) {
68
+ return { type: 'StringLiteral', value: list.join('') };
69
+ }
70
+ let res = list.reduce((result, element) => {
71
+ if (typeof element === 'string' && typeof result[result.length - 1] === 'string') {
72
+ result[result.length - 1] += element;
73
+ }
74
+ else {
75
+ result.push(element);
76
+ }
77
+ return result;
78
+ }, []).reduce((result, element) => {
79
+ if (typeof element === 'string') {
80
+ result.quasis.push({ type: 'StringLiteral', value: element });
81
+ }
82
+ else {
83
+ if (result.quasis.length === result.expressions.length) {
84
+ result.quasis.push({ type: 'StringLiteral', value: '' });
85
+ }
86
+ result.expressions.push(element);
87
+ }
88
+ return result;
89
+ }, {
90
+ type: 'TemplateLiteral',
91
+ quasis: [],
92
+ expressions: []
93
+ });
94
+ if (res.quasis.length === res.expressions.length) {
95
+ res.quasis.push({ type: 'StringLiteral', value: '' });
96
+ }
97
+ return res;
98
+ }
99
+ function convertToInt64(str) {
100
+ try {
101
+ return toBigInt(str);
102
+ }
103
+ catch (_err) {
104
+ throw new Error(`Value ${str} can't be converted to Integer type.`);
105
+ }
106
+ }
107
+ function escapeChar(char) {
108
+ if (char === "'" || char === '\\') {
109
+ return char;
110
+ }
111
+ throw new Error('Incorrect string escape');
112
+ }
113
+ function peg$subclass(child, parent) {
114
+ function C() { this.constructor = child; }
115
+ C.prototype = parent.prototype;
116
+ child.prototype = new C();
117
+ }
118
+ function peg$SyntaxError(message, expected, found, location) {
119
+ var self = Error.call(this, message);
120
+ // istanbul ignore next Check is a necessary evil to support older environments
121
+ if (Object.setPrototypeOf) {
122
+ Object.setPrototypeOf(self, peg$SyntaxError.prototype);
123
+ }
124
+ self.expected = expected;
125
+ self.found = found;
126
+ self.location = location;
127
+ self.name = "SyntaxError";
128
+ return self;
129
+ }
130
+ peg$subclass(peg$SyntaxError, Error);
131
+ function peg$padEnd(str, targetLength, padString) {
132
+ padString = padString || " ";
133
+ if (str.length > targetLength) {
134
+ return str;
135
+ }
136
+ targetLength -= str.length;
137
+ padString += padString.repeat(targetLength);
138
+ return str + padString.slice(0, targetLength);
139
+ }
140
+ peg$SyntaxError.prototype.format = function (sources) {
141
+ var str = "Error: " + this.message;
142
+ if (this.location) {
143
+ var src = null;
144
+ var k;
145
+ for (k = 0; k < sources.length; k++) {
146
+ if (sources[k].source === this.location.source) {
147
+ src = sources[k].text.split(/\r\n|\n|\r/g);
148
+ break;
149
+ }
150
+ }
151
+ var s = this.location.start;
152
+ var offset_s = (this.location.source && (typeof this.location.source.offset === "function"))
153
+ ? this.location.source.offset(s)
154
+ : s;
155
+ var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;
156
+ if (src) {
157
+ var e = this.location.end;
158
+ var filler = peg$padEnd("", offset_s.line.toString().length, ' ');
159
+ var line = src[s.line - 1];
160
+ var last = s.line === e.line ? e.column : line.length + 1;
161
+ var hatLen = (last - s.column) || 1;
162
+ str += "\n --> " + loc + "\n"
163
+ + filler + " |\n"
164
+ + offset_s.line + " | " + line + "\n"
165
+ + filler + " | " + peg$padEnd("", s.column - 1, ' ')
166
+ + peg$padEnd("", hatLen, "^");
167
+ }
168
+ else {
169
+ str += "\n at " + loc;
170
+ }
171
+ }
172
+ return str;
173
+ };
174
+ peg$SyntaxError.buildMessage = function (expected, found) {
175
+ var DESCRIBE_EXPECTATION_FNS = {
176
+ literal: function (expectation) {
177
+ return "\"" + literalEscape(expectation.text) + "\"";
178
+ },
179
+ class: function (expectation) {
180
+ var escapedParts = expectation.parts.map(function (part) {
181
+ return Array.isArray(part)
182
+ ? classEscape(part[0]) + "-" + classEscape(part[1])
183
+ : classEscape(part);
184
+ });
185
+ return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";
186
+ },
187
+ any: function () {
188
+ return "any character";
189
+ },
190
+ end: function () {
191
+ return "end of input";
192
+ },
193
+ other: function (expectation) {
194
+ return expectation.description;
195
+ }
196
+ };
197
+ function hex(ch) {
198
+ return ch.charCodeAt(0).toString(16).toUpperCase();
199
+ }
200
+ function literalEscape(s) {
201
+ return s
202
+ .replace(/\\/g, "\\\\")
203
+ .replace(/"/g, "\\\"")
204
+ .replace(/\0/g, "\\0")
205
+ .replace(/\t/g, "\\t")
206
+ .replace(/\n/g, "\\n")
207
+ .replace(/\r/g, "\\r")
208
+ .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
209
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
210
+ }
211
+ function classEscape(s) {
212
+ return s
213
+ .replace(/\\/g, "\\\\")
214
+ .replace(/\]/g, "\\]")
215
+ .replace(/\^/g, "\\^")
216
+ .replace(/-/g, "\\-")
217
+ .replace(/\0/g, "\\0")
218
+ .replace(/\t/g, "\\t")
219
+ .replace(/\n/g, "\\n")
220
+ .replace(/\r/g, "\\r")
221
+ .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
222
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
223
+ }
224
+ function describeExpectation(expectation) {
225
+ return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
226
+ }
227
+ function describeExpected(expected) {
228
+ var descriptions = expected.map(describeExpectation);
229
+ var i, j;
230
+ descriptions.sort();
231
+ if (descriptions.length > 0) {
232
+ for (i = 1, j = 1; i < descriptions.length; i++) {
233
+ if (descriptions[i - 1] !== descriptions[i]) {
234
+ descriptions[j] = descriptions[i];
235
+ j++;
236
+ }
237
+ }
238
+ descriptions.length = j;
239
+ }
240
+ switch (descriptions.length) {
241
+ case 1:
242
+ return descriptions[0];
243
+ case 2:
244
+ return descriptions[0] + " or " + descriptions[1];
245
+ default:
246
+ return descriptions.slice(0, -1).join(", ")
247
+ + ", or "
248
+ + descriptions[descriptions.length - 1];
249
+ }
250
+ }
251
+ function describeFound(found) {
252
+ return found ? "\"" + literalEscape(found) + "\"" : "end of input";
253
+ }
254
+ return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
255
+ };
256
+ function peg$parse(input, options) {
257
+ options = options !== undefined ? options : {};
258
+ var peg$FAILED = {};
259
+ var peg$source = options.grammarSource;
260
+ var peg$startRuleFunctions = { start: peg$parsestart, JsonStringContents: peg$parseJsonStringContents };
261
+ var peg$startRuleFunction = peg$parsestart;
262
+ var peg$c0 = "@{";
263
+ var peg$c1 = "}";
264
+ var peg$c2 = "@{}";
265
+ var peg$c3 = "\\";
266
+ var peg$c4 = "?";
267
+ var peg$c5 = ":";
268
+ var peg$c6 = "!:";
269
+ var peg$c7 = "||";
270
+ var peg$c8 = "&&";
271
+ var peg$c9 = "==";
272
+ var peg$c10 = "!=";
273
+ var peg$c11 = ">=";
274
+ var peg$c12 = ">";
275
+ var peg$c13 = "<=";
276
+ var peg$c14 = "<";
277
+ var peg$c15 = "+";
278
+ var peg$c16 = "-";
279
+ var peg$c17 = "/";
280
+ var peg$c18 = "*";
281
+ var peg$c19 = "%";
282
+ var peg$c20 = "!";
283
+ var peg$c21 = ".";
284
+ var peg$c22 = "(";
285
+ var peg$c23 = ")";
286
+ var peg$c24 = ",";
287
+ var peg$c25 = "'";
288
+ var peg$c26 = "e";
289
+ var peg$c27 = "E";
290
+ var peg$r0 = /^[^}]/;
291
+ var peg$r1 = /^[^'}]/;
292
+ var peg$r2 = /^[0-9]/;
293
+ var peg$r3 = /^[a-zA-Z_]/;
294
+ var peg$r4 = /^[a-zA-Z_0-9]/;
295
+ var peg$r5 = /^[ \t\r\n]/;
296
+ var peg$e0 = peg$literalExpectation("@{", false);
297
+ var peg$e1 = peg$literalExpectation("}", false);
298
+ var peg$e2 = peg$literalExpectation("@{}", false);
299
+ var peg$e3 = peg$literalExpectation("\\", false);
300
+ var peg$e4 = peg$anyExpectation();
301
+ var peg$e5 = peg$classExpectation(["}"], true, false);
302
+ var peg$e6 = peg$literalExpectation("?", false);
303
+ var peg$e7 = peg$literalExpectation(":", false);
304
+ var peg$e8 = peg$literalExpectation("!:", false);
305
+ var peg$e9 = peg$literalExpectation("||", false);
306
+ var peg$e10 = peg$literalExpectation("&&", false);
307
+ var peg$e11 = peg$literalExpectation("==", false);
308
+ var peg$e12 = peg$literalExpectation("!=", false);
309
+ var peg$e13 = peg$literalExpectation(">=", false);
310
+ var peg$e14 = peg$literalExpectation(">", false);
311
+ var peg$e15 = peg$literalExpectation("<=", false);
312
+ var peg$e16 = peg$literalExpectation("<", false);
313
+ var peg$e17 = peg$literalExpectation("+", false);
314
+ var peg$e18 = peg$literalExpectation("-", false);
315
+ var peg$e19 = peg$literalExpectation("/", false);
316
+ var peg$e20 = peg$literalExpectation("*", false);
317
+ var peg$e21 = peg$literalExpectation("%", false);
318
+ var peg$e22 = peg$literalExpectation("!", false);
319
+ var peg$e23 = peg$literalExpectation(".", false);
320
+ var peg$e24 = peg$literalExpectation("(", false);
321
+ var peg$e25 = peg$literalExpectation(")", false);
322
+ var peg$e26 = peg$literalExpectation(",", false);
323
+ var peg$e27 = peg$otherExpectation("string");
324
+ var peg$e28 = peg$literalExpectation("'", false);
325
+ var peg$e29 = peg$classExpectation(["'", "}"], true, false);
326
+ var peg$e30 = peg$otherExpectation("integer");
327
+ var peg$e31 = peg$classExpectation([["0", "9"]], false, false);
328
+ var peg$e32 = peg$otherExpectation("number");
329
+ var peg$e33 = peg$literalExpectation("e", false);
330
+ var peg$e34 = peg$literalExpectation("E", false);
331
+ var peg$e35 = peg$classExpectation([["a", "z"], ["A", "Z"], "_"], false, false);
332
+ var peg$e36 = peg$classExpectation([["a", "z"], ["A", "Z"], "_", ["0", "9"]], false, false);
333
+ var peg$e37 = peg$otherExpectation("whitespace");
334
+ var peg$e38 = peg$classExpectation([" ", "\t", "\r", "\n"], false, false);
335
+ var peg$f0 = function (expr) { return expr; };
336
+ var peg$f1 = function (list) { return buildString(list); };
337
+ var peg$f2 = function (expr) { return expr; };
338
+ var peg$f3 = function () { return ''; };
339
+ var peg$f4 = function () { return text(); };
340
+ var peg$f5 = function () { throw new Error("Error tokenizing '" + input + "'."); };
341
+ var peg$f6 = function () { throw new Error("Error tokenizing '" + input + "'."); };
342
+ var peg$f7 = function (str) { return str; };
343
+ var peg$f8 = function (char) { return escapeChar(char); };
344
+ var peg$f9 = function () { throw new Error("Error tokenizing '" + input + "'."); };
345
+ var peg$f10 = function (expr, tail) { return buildConditionalExpression(expr, tail); };
346
+ var peg$f11 = function (expr, tail) { return buildTryExpression(expr, tail); };
347
+ var peg$f12 = function (head, tail) { return buildLogicalExpression(head, tail); };
348
+ var peg$f13 = function (head, tail) { return buildLogicalExpression(head, tail); };
349
+ var peg$f14 = function (head, tail) { return buildBinaryExpression(head, tail); };
350
+ var peg$f15 = function (head, tail) { return buildBinaryExpression(head, tail); };
351
+ var peg$f16 = function (head, tail) { return buildBinaryExpression(head, tail); };
352
+ var peg$f17 = function (head, tail) { return buildBinaryExpression(head, tail); };
353
+ var peg$f18 = function (val) { return val; };
354
+ var peg$f19 = function (val) { return val; };
355
+ var peg$f20 = function (op, expr) { return { type: 'UnaryExpression', operator: op, argument: expr }; };
356
+ var peg$f21 = function () { throw new Error("Incorrect unary operator"); };
357
+ var peg$f22 = function (head, tail) { return buildMethodCall(head, tail); };
358
+ var peg$f23 = function (id, args) { return { type: 'CallExpression', callee: id, arguments: args }; };
359
+ var peg$f24 = function (expr, list) { return [expr, ...list]; };
360
+ var peg$f25 = function (expr) { return expr; };
361
+ var peg$f26 = function (str) { return str; };
362
+ var peg$f27 = function (list) { return buildString(list); };
363
+ var peg$f28 = function (expr) { return expr; };
364
+ var peg$f29 = function () { return ''; };
365
+ var peg$f30 = function () { return text(); };
366
+ var peg$f31 = function () { throw new Error("Error tokenizing '" + input + "'."); };
367
+ var peg$f32 = function () { throw new Error("Error tokenizing '" + input + "'."); };
368
+ var peg$f33 = function (str) { return str; };
369
+ var peg$f34 = function (char) { return escapeChar(char); };
370
+ var peg$f35 = function () { throw new Error("Error tokenizing '" + input + "'."); };
371
+ var peg$f36 = function () { return { type: 'IntegerLiteral', value: convertToInt64(text()) }; };
372
+ var peg$f37 = function () { return { type: 'NumberLiteral', value: parseFloat(text()) }; };
373
+ var peg$f38 = function () { return { type: 'NumberLiteral', value: parseFloat(text()) }; };
374
+ var peg$f39 = function () { const txt = text(); if (/\.\./.test(txt) || /\.$/.test(txt)) {
375
+ throw new Error('Unexpected token: .');
376
+ } return buildVariableOrBoolean(txt); };
377
+ var peg$f40 = function () { return { type: 'Identifier', name: text() }; };
378
+ var peg$currPos = 0;
379
+ var peg$savedPos = 0;
380
+ var peg$posDetailsCache = [{ line: 1, column: 1 }];
381
+ var peg$maxFailPos = 0;
382
+ var peg$maxFailExpected = [];
383
+ var peg$silentFails = 0;
384
+ var peg$result;
385
+ if ("startRule" in options) {
386
+ if (!(options.startRule in peg$startRuleFunctions)) {
387
+ throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
388
+ }
389
+ peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
390
+ }
391
+ function text() {
392
+ return input.substring(peg$savedPos, peg$currPos);
393
+ }
394
+ function offset() {
395
+ return peg$savedPos;
396
+ }
397
+ function range() {
398
+ return {
399
+ source: peg$source,
400
+ start: peg$savedPos,
401
+ end: peg$currPos
402
+ };
403
+ }
404
+ function location() {
405
+ return peg$computeLocation(peg$savedPos, peg$currPos);
406
+ }
407
+ function expected(description, location) {
408
+ location = location !== undefined
409
+ ? location
410
+ : peg$computeLocation(peg$savedPos, peg$currPos);
411
+ throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location);
412
+ }
413
+ function error(message, location) {
414
+ location = location !== undefined
415
+ ? location
416
+ : peg$computeLocation(peg$savedPos, peg$currPos);
417
+ throw peg$buildSimpleError(message, location);
418
+ }
419
+ function peg$literalExpectation(text, ignoreCase) {
420
+ return { type: "literal", text: text, ignoreCase: ignoreCase };
421
+ }
422
+ function peg$classExpectation(parts, inverted, ignoreCase) {
423
+ return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
424
+ }
425
+ function peg$anyExpectation() {
426
+ return { type: "any" };
427
+ }
428
+ function peg$endExpectation() {
429
+ return { type: "end" };
430
+ }
431
+ function peg$otherExpectation(description) {
432
+ return { type: "other", description: description };
433
+ }
434
+ function peg$computePosDetails(pos) {
435
+ var details = peg$posDetailsCache[pos];
436
+ var p;
437
+ if (details) {
438
+ return details;
439
+ }
440
+ else {
441
+ p = pos - 1;
442
+ while (!peg$posDetailsCache[p]) {
443
+ p--;
444
+ }
445
+ details = peg$posDetailsCache[p];
446
+ details = {
447
+ line: details.line,
448
+ column: details.column
449
+ };
450
+ while (p < pos) {
451
+ if (input.charCodeAt(p) === 10) {
452
+ details.line++;
453
+ details.column = 1;
454
+ }
455
+ else {
456
+ details.column++;
457
+ }
458
+ p++;
459
+ }
460
+ peg$posDetailsCache[pos] = details;
461
+ return details;
462
+ }
463
+ }
464
+ function peg$computeLocation(startPos, endPos, offset) {
465
+ var startPosDetails = peg$computePosDetails(startPos);
466
+ var endPosDetails = peg$computePosDetails(endPos);
467
+ var res = {
468
+ source: peg$source,
469
+ start: {
470
+ offset: startPos,
471
+ line: startPosDetails.line,
472
+ column: startPosDetails.column
473
+ },
474
+ end: {
475
+ offset: endPos,
476
+ line: endPosDetails.line,
477
+ column: endPosDetails.column
478
+ }
479
+ };
480
+ if (offset && peg$source && (typeof peg$source.offset === "function")) {
481
+ res.start = peg$source.offset(res.start);
482
+ res.end = peg$source.offset(res.end);
483
+ }
484
+ return res;
485
+ }
486
+ function peg$fail(expected) {
487
+ if (peg$currPos < peg$maxFailPos) {
488
+ return;
489
+ }
490
+ if (peg$currPos > peg$maxFailPos) {
491
+ peg$maxFailPos = peg$currPos;
492
+ peg$maxFailExpected = [];
493
+ }
494
+ peg$maxFailExpected.push(expected);
495
+ }
496
+ function peg$buildSimpleError(message, location) {
497
+ return new peg$SyntaxError(message, null, null, location);
498
+ }
499
+ function peg$buildStructuredError(expected, found, location) {
500
+ return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location);
501
+ }
502
+ function peg$parsestart() {
503
+ var s0, s1, s2, s3;
504
+ s0 = peg$currPos;
505
+ s1 = peg$parse_();
506
+ s2 = peg$parseExpression();
507
+ if (s2 !== peg$FAILED) {
508
+ s3 = peg$parse_();
509
+ peg$savedPos = s0;
510
+ s0 = peg$f0(s2);
511
+ }
512
+ else {
513
+ peg$currPos = s0;
514
+ s0 = peg$FAILED;
515
+ }
516
+ return s0;
517
+ }
518
+ function peg$parseJsonStringContents() {
519
+ var s0, s1, s2;
520
+ s0 = peg$currPos;
521
+ s1 = [];
522
+ s2 = peg$parseJsonStringChar();
523
+ while (s2 !== peg$FAILED) {
524
+ s1.push(s2);
525
+ s2 = peg$parseJsonStringChar();
526
+ }
527
+ peg$savedPos = s0;
528
+ s1 = peg$f1(s1);
529
+ s0 = s1;
530
+ return s0;
531
+ }
532
+ function peg$parseJsonStringChar() {
533
+ var s0, s1, s2, s3, s4, s5;
534
+ s0 = peg$currPos;
535
+ if (input.substr(peg$currPos, 2) === peg$c0) {
536
+ s1 = peg$c0;
537
+ peg$currPos += 2;
538
+ }
539
+ else {
540
+ s1 = peg$FAILED;
541
+ if (peg$silentFails === 0) {
542
+ peg$fail(peg$e0);
543
+ }
544
+ }
545
+ if (s1 !== peg$FAILED) {
546
+ s2 = peg$parse_();
547
+ s3 = peg$parseExpression();
548
+ if (s3 !== peg$FAILED) {
549
+ s4 = peg$parse_();
550
+ if (input.charCodeAt(peg$currPos) === 125) {
551
+ s5 = peg$c1;
552
+ peg$currPos++;
553
+ }
554
+ else {
555
+ s5 = peg$FAILED;
556
+ if (peg$silentFails === 0) {
557
+ peg$fail(peg$e1);
558
+ }
559
+ }
560
+ if (s5 !== peg$FAILED) {
561
+ peg$savedPos = s0;
562
+ s0 = peg$f2(s3);
563
+ }
564
+ else {
565
+ peg$currPos = s0;
566
+ s0 = peg$FAILED;
567
+ }
568
+ }
569
+ else {
570
+ peg$currPos = s0;
571
+ s0 = peg$FAILED;
572
+ }
573
+ }
574
+ else {
575
+ peg$currPos = s0;
576
+ s0 = peg$FAILED;
577
+ }
578
+ if (s0 === peg$FAILED) {
579
+ s0 = peg$currPos;
580
+ if (input.substr(peg$currPos, 3) === peg$c2) {
581
+ s1 = peg$c2;
582
+ peg$currPos += 3;
583
+ }
584
+ else {
585
+ s1 = peg$FAILED;
586
+ if (peg$silentFails === 0) {
587
+ peg$fail(peg$e2);
588
+ }
589
+ }
590
+ if (s1 !== peg$FAILED) {
591
+ peg$savedPos = s0;
592
+ s1 = peg$f3();
593
+ }
594
+ s0 = s1;
595
+ if (s0 === peg$FAILED) {
596
+ s0 = peg$currPos;
597
+ s1 = peg$currPos;
598
+ peg$silentFails++;
599
+ if (input.charCodeAt(peg$currPos) === 92) {
600
+ s2 = peg$c3;
601
+ peg$currPos++;
602
+ }
603
+ else {
604
+ s2 = peg$FAILED;
605
+ if (peg$silentFails === 0) {
606
+ peg$fail(peg$e3);
607
+ }
608
+ }
609
+ if (s2 === peg$FAILED) {
610
+ if (input.substr(peg$currPos, 2) === peg$c0) {
611
+ s2 = peg$c0;
612
+ peg$currPos += 2;
613
+ }
614
+ else {
615
+ s2 = peg$FAILED;
616
+ if (peg$silentFails === 0) {
617
+ peg$fail(peg$e0);
618
+ }
619
+ }
620
+ }
621
+ peg$silentFails--;
622
+ if (s2 === peg$FAILED) {
623
+ s1 = undefined;
624
+ }
625
+ else {
626
+ peg$currPos = s1;
627
+ s1 = peg$FAILED;
628
+ }
629
+ if (s1 !== peg$FAILED) {
630
+ if (input.length > peg$currPos) {
631
+ s2 = input.charAt(peg$currPos);
632
+ peg$currPos++;
633
+ }
634
+ else {
635
+ s2 = peg$FAILED;
636
+ if (peg$silentFails === 0) {
637
+ peg$fail(peg$e4);
638
+ }
639
+ }
640
+ if (s2 !== peg$FAILED) {
641
+ peg$savedPos = s0;
642
+ s0 = peg$f4();
643
+ }
644
+ else {
645
+ peg$currPos = s0;
646
+ s0 = peg$FAILED;
647
+ }
648
+ }
649
+ else {
650
+ peg$currPos = s0;
651
+ s0 = peg$FAILED;
652
+ }
653
+ if (s0 === peg$FAILED) {
654
+ s0 = peg$currPos;
655
+ if (input.substr(peg$currPos, 2) === peg$c0) {
656
+ s1 = peg$c0;
657
+ peg$currPos += 2;
658
+ }
659
+ else {
660
+ s1 = peg$FAILED;
661
+ if (peg$silentFails === 0) {
662
+ peg$fail(peg$e0);
663
+ }
664
+ }
665
+ if (s1 !== peg$FAILED) {
666
+ s2 = [];
667
+ if (peg$r0.test(input.charAt(peg$currPos))) {
668
+ s3 = input.charAt(peg$currPos);
669
+ peg$currPos++;
670
+ }
671
+ else {
672
+ s3 = peg$FAILED;
673
+ if (peg$silentFails === 0) {
674
+ peg$fail(peg$e5);
675
+ }
676
+ }
677
+ if (s3 !== peg$FAILED) {
678
+ while (s3 !== peg$FAILED) {
679
+ s2.push(s3);
680
+ if (peg$r0.test(input.charAt(peg$currPos))) {
681
+ s3 = input.charAt(peg$currPos);
682
+ peg$currPos++;
683
+ }
684
+ else {
685
+ s3 = peg$FAILED;
686
+ if (peg$silentFails === 0) {
687
+ peg$fail(peg$e5);
688
+ }
689
+ }
690
+ }
691
+ }
692
+ else {
693
+ s2 = peg$FAILED;
694
+ }
695
+ if (s2 !== peg$FAILED) {
696
+ if (input.charCodeAt(peg$currPos) === 125) {
697
+ s3 = peg$c1;
698
+ peg$currPos++;
699
+ }
700
+ else {
701
+ s3 = peg$FAILED;
702
+ if (peg$silentFails === 0) {
703
+ peg$fail(peg$e1);
704
+ }
705
+ }
706
+ if (s3 !== peg$FAILED) {
707
+ peg$savedPos = s0;
708
+ s0 = peg$f5();
709
+ }
710
+ else {
711
+ peg$currPos = s0;
712
+ s0 = peg$FAILED;
713
+ }
714
+ }
715
+ else {
716
+ peg$currPos = s0;
717
+ s0 = peg$FAILED;
718
+ }
719
+ }
720
+ else {
721
+ peg$currPos = s0;
722
+ s0 = peg$FAILED;
723
+ }
724
+ if (s0 === peg$FAILED) {
725
+ s0 = peg$currPos;
726
+ if (input.substr(peg$currPos, 2) === peg$c0) {
727
+ s1 = peg$c0;
728
+ peg$currPos += 2;
729
+ }
730
+ else {
731
+ s1 = peg$FAILED;
732
+ if (peg$silentFails === 0) {
733
+ peg$fail(peg$e0);
734
+ }
735
+ }
736
+ if (s1 !== peg$FAILED) {
737
+ peg$savedPos = s0;
738
+ s1 = peg$f6();
739
+ }
740
+ s0 = s1;
741
+ if (s0 === peg$FAILED) {
742
+ s0 = peg$currPos;
743
+ if (input.charCodeAt(peg$currPos) === 92) {
744
+ s1 = peg$c3;
745
+ peg$currPos++;
746
+ }
747
+ else {
748
+ s1 = peg$FAILED;
749
+ if (peg$silentFails === 0) {
750
+ peg$fail(peg$e3);
751
+ }
752
+ }
753
+ if (s1 !== peg$FAILED) {
754
+ if (input.substr(peg$currPos, 2) === peg$c0) {
755
+ s2 = peg$c0;
756
+ peg$currPos += 2;
757
+ }
758
+ else {
759
+ s2 = peg$FAILED;
760
+ if (peg$silentFails === 0) {
761
+ peg$fail(peg$e0);
762
+ }
763
+ }
764
+ if (s2 !== peg$FAILED) {
765
+ peg$savedPos = s0;
766
+ s0 = peg$f7(s2);
767
+ }
768
+ else {
769
+ peg$currPos = s0;
770
+ s0 = peg$FAILED;
771
+ }
772
+ }
773
+ else {
774
+ peg$currPos = s0;
775
+ s0 = peg$FAILED;
776
+ }
777
+ if (s0 === peg$FAILED) {
778
+ s0 = peg$currPos;
779
+ if (input.charCodeAt(peg$currPos) === 92) {
780
+ s1 = peg$c3;
781
+ peg$currPos++;
782
+ }
783
+ else {
784
+ s1 = peg$FAILED;
785
+ if (peg$silentFails === 0) {
786
+ peg$fail(peg$e3);
787
+ }
788
+ }
789
+ if (s1 !== peg$FAILED) {
790
+ if (input.length > peg$currPos) {
791
+ s2 = input.charAt(peg$currPos);
792
+ peg$currPos++;
793
+ }
794
+ else {
795
+ s2 = peg$FAILED;
796
+ if (peg$silentFails === 0) {
797
+ peg$fail(peg$e4);
798
+ }
799
+ }
800
+ if (s2 !== peg$FAILED) {
801
+ peg$savedPos = s0;
802
+ s0 = peg$f8(s2);
803
+ }
804
+ else {
805
+ peg$currPos = s0;
806
+ s0 = peg$FAILED;
807
+ }
808
+ }
809
+ else {
810
+ peg$currPos = s0;
811
+ s0 = peg$FAILED;
812
+ }
813
+ if (s0 === peg$FAILED) {
814
+ s0 = peg$currPos;
815
+ if (input.charCodeAt(peg$currPos) === 92) {
816
+ s1 = peg$c3;
817
+ peg$currPos++;
818
+ }
819
+ else {
820
+ s1 = peg$FAILED;
821
+ if (peg$silentFails === 0) {
822
+ peg$fail(peg$e3);
823
+ }
824
+ }
825
+ if (s1 !== peg$FAILED) {
826
+ peg$savedPos = s0;
827
+ s1 = peg$f9();
828
+ }
829
+ s0 = s1;
830
+ }
831
+ }
832
+ }
833
+ }
834
+ }
835
+ }
836
+ }
837
+ return s0;
838
+ }
839
+ function peg$parseExpression() {
840
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
841
+ s0 = peg$currPos;
842
+ s1 = peg$parseTry();
843
+ if (s1 !== peg$FAILED) {
844
+ s2 = peg$currPos;
845
+ s3 = peg$parse_();
846
+ if (input.charCodeAt(peg$currPos) === 63) {
847
+ s4 = peg$c4;
848
+ peg$currPos++;
849
+ }
850
+ else {
851
+ s4 = peg$FAILED;
852
+ if (peg$silentFails === 0) {
853
+ peg$fail(peg$e6);
854
+ }
855
+ }
856
+ if (s4 !== peg$FAILED) {
857
+ s5 = peg$parse_();
858
+ s6 = peg$parseExpression();
859
+ if (s6 !== peg$FAILED) {
860
+ s7 = peg$parse_();
861
+ if (input.charCodeAt(peg$currPos) === 58) {
862
+ s8 = peg$c5;
863
+ peg$currPos++;
864
+ }
865
+ else {
866
+ s8 = peg$FAILED;
867
+ if (peg$silentFails === 0) {
868
+ peg$fail(peg$e7);
869
+ }
870
+ }
871
+ if (s8 !== peg$FAILED) {
872
+ s9 = peg$parse_();
873
+ s10 = peg$parseExpression();
874
+ if (s10 !== peg$FAILED) {
875
+ s3 = [s3, s4, s5, s6, s7, s8, s9, s10];
876
+ s2 = s3;
877
+ }
878
+ else {
879
+ peg$currPos = s2;
880
+ s2 = peg$FAILED;
881
+ }
882
+ }
883
+ else {
884
+ peg$currPos = s2;
885
+ s2 = peg$FAILED;
886
+ }
887
+ }
888
+ else {
889
+ peg$currPos = s2;
890
+ s2 = peg$FAILED;
891
+ }
892
+ }
893
+ else {
894
+ peg$currPos = s2;
895
+ s2 = peg$FAILED;
896
+ }
897
+ if (s2 === peg$FAILED) {
898
+ s2 = null;
899
+ }
900
+ peg$savedPos = s0;
901
+ s0 = peg$f10(s1, s2);
902
+ }
903
+ else {
904
+ peg$currPos = s0;
905
+ s0 = peg$FAILED;
906
+ }
907
+ return s0;
908
+ }
909
+ function peg$parseTry() {
910
+ var s0, s1, s2, s3, s4, s5, s6;
911
+ s0 = peg$currPos;
912
+ s1 = peg$parseOr();
913
+ if (s1 !== peg$FAILED) {
914
+ s2 = peg$currPos;
915
+ s3 = peg$parse_();
916
+ if (input.substr(peg$currPos, 2) === peg$c6) {
917
+ s4 = peg$c6;
918
+ peg$currPos += 2;
919
+ }
920
+ else {
921
+ s4 = peg$FAILED;
922
+ if (peg$silentFails === 0) {
923
+ peg$fail(peg$e8);
924
+ }
925
+ }
926
+ if (s4 !== peg$FAILED) {
927
+ s5 = peg$parse_();
928
+ s6 = peg$parseExpression();
929
+ if (s6 !== peg$FAILED) {
930
+ s3 = [s3, s4, s5, s6];
931
+ s2 = s3;
932
+ }
933
+ else {
934
+ peg$currPos = s2;
935
+ s2 = peg$FAILED;
936
+ }
937
+ }
938
+ else {
939
+ peg$currPos = s2;
940
+ s2 = peg$FAILED;
941
+ }
942
+ if (s2 === peg$FAILED) {
943
+ s2 = null;
944
+ }
945
+ peg$savedPos = s0;
946
+ s0 = peg$f11(s1, s2);
947
+ }
948
+ else {
949
+ peg$currPos = s0;
950
+ s0 = peg$FAILED;
951
+ }
952
+ return s0;
953
+ }
954
+ function peg$parseOr() {
955
+ var s0, s1, s2, s3, s4, s5, s6, s7;
956
+ s0 = peg$currPos;
957
+ s1 = peg$parseAnd();
958
+ if (s1 !== peg$FAILED) {
959
+ s2 = [];
960
+ s3 = peg$currPos;
961
+ s4 = peg$parse_();
962
+ if (input.substr(peg$currPos, 2) === peg$c7) {
963
+ s5 = peg$c7;
964
+ peg$currPos += 2;
965
+ }
966
+ else {
967
+ s5 = peg$FAILED;
968
+ if (peg$silentFails === 0) {
969
+ peg$fail(peg$e9);
970
+ }
971
+ }
972
+ if (s5 !== peg$FAILED) {
973
+ s6 = peg$parse_();
974
+ s7 = peg$parseAnd();
975
+ if (s7 !== peg$FAILED) {
976
+ s4 = [s4, s5, s6, s7];
977
+ s3 = s4;
978
+ }
979
+ else {
980
+ peg$currPos = s3;
981
+ s3 = peg$FAILED;
982
+ }
983
+ }
984
+ else {
985
+ peg$currPos = s3;
986
+ s3 = peg$FAILED;
987
+ }
988
+ while (s3 !== peg$FAILED) {
989
+ s2.push(s3);
990
+ s3 = peg$currPos;
991
+ s4 = peg$parse_();
992
+ if (input.substr(peg$currPos, 2) === peg$c7) {
993
+ s5 = peg$c7;
994
+ peg$currPos += 2;
995
+ }
996
+ else {
997
+ s5 = peg$FAILED;
998
+ if (peg$silentFails === 0) {
999
+ peg$fail(peg$e9);
1000
+ }
1001
+ }
1002
+ if (s5 !== peg$FAILED) {
1003
+ s6 = peg$parse_();
1004
+ s7 = peg$parseAnd();
1005
+ if (s7 !== peg$FAILED) {
1006
+ s4 = [s4, s5, s6, s7];
1007
+ s3 = s4;
1008
+ }
1009
+ else {
1010
+ peg$currPos = s3;
1011
+ s3 = peg$FAILED;
1012
+ }
1013
+ }
1014
+ else {
1015
+ peg$currPos = s3;
1016
+ s3 = peg$FAILED;
1017
+ }
1018
+ }
1019
+ peg$savedPos = s0;
1020
+ s0 = peg$f12(s1, s2);
1021
+ }
1022
+ else {
1023
+ peg$currPos = s0;
1024
+ s0 = peg$FAILED;
1025
+ }
1026
+ return s0;
1027
+ }
1028
+ function peg$parseAnd() {
1029
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1030
+ s0 = peg$currPos;
1031
+ s1 = peg$parseEqual();
1032
+ if (s1 !== peg$FAILED) {
1033
+ s2 = [];
1034
+ s3 = peg$currPos;
1035
+ s4 = peg$parse_();
1036
+ if (input.substr(peg$currPos, 2) === peg$c8) {
1037
+ s5 = peg$c8;
1038
+ peg$currPos += 2;
1039
+ }
1040
+ else {
1041
+ s5 = peg$FAILED;
1042
+ if (peg$silentFails === 0) {
1043
+ peg$fail(peg$e10);
1044
+ }
1045
+ }
1046
+ if (s5 !== peg$FAILED) {
1047
+ s6 = peg$parse_();
1048
+ s7 = peg$parseEqual();
1049
+ if (s7 !== peg$FAILED) {
1050
+ s4 = [s4, s5, s6, s7];
1051
+ s3 = s4;
1052
+ }
1053
+ else {
1054
+ peg$currPos = s3;
1055
+ s3 = peg$FAILED;
1056
+ }
1057
+ }
1058
+ else {
1059
+ peg$currPos = s3;
1060
+ s3 = peg$FAILED;
1061
+ }
1062
+ while (s3 !== peg$FAILED) {
1063
+ s2.push(s3);
1064
+ s3 = peg$currPos;
1065
+ s4 = peg$parse_();
1066
+ if (input.substr(peg$currPos, 2) === peg$c8) {
1067
+ s5 = peg$c8;
1068
+ peg$currPos += 2;
1069
+ }
1070
+ else {
1071
+ s5 = peg$FAILED;
1072
+ if (peg$silentFails === 0) {
1073
+ peg$fail(peg$e10);
1074
+ }
1075
+ }
1076
+ if (s5 !== peg$FAILED) {
1077
+ s6 = peg$parse_();
1078
+ s7 = peg$parseEqual();
1079
+ if (s7 !== peg$FAILED) {
1080
+ s4 = [s4, s5, s6, s7];
1081
+ s3 = s4;
1082
+ }
1083
+ else {
1084
+ peg$currPos = s3;
1085
+ s3 = peg$FAILED;
1086
+ }
1087
+ }
1088
+ else {
1089
+ peg$currPos = s3;
1090
+ s3 = peg$FAILED;
1091
+ }
1092
+ }
1093
+ peg$savedPos = s0;
1094
+ s0 = peg$f13(s1, s2);
1095
+ }
1096
+ else {
1097
+ peg$currPos = s0;
1098
+ s0 = peg$FAILED;
1099
+ }
1100
+ return s0;
1101
+ }
1102
+ function peg$parseEqual() {
1103
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1104
+ s0 = peg$currPos;
1105
+ s1 = peg$parseComparison();
1106
+ if (s1 !== peg$FAILED) {
1107
+ s2 = [];
1108
+ s3 = peg$currPos;
1109
+ s4 = peg$parse_();
1110
+ if (input.substr(peg$currPos, 2) === peg$c9) {
1111
+ s5 = peg$c9;
1112
+ peg$currPos += 2;
1113
+ }
1114
+ else {
1115
+ s5 = peg$FAILED;
1116
+ if (peg$silentFails === 0) {
1117
+ peg$fail(peg$e11);
1118
+ }
1119
+ }
1120
+ if (s5 === peg$FAILED) {
1121
+ if (input.substr(peg$currPos, 2) === peg$c10) {
1122
+ s5 = peg$c10;
1123
+ peg$currPos += 2;
1124
+ }
1125
+ else {
1126
+ s5 = peg$FAILED;
1127
+ if (peg$silentFails === 0) {
1128
+ peg$fail(peg$e12);
1129
+ }
1130
+ }
1131
+ }
1132
+ if (s5 !== peg$FAILED) {
1133
+ s6 = peg$parse_();
1134
+ s7 = peg$parseComparison();
1135
+ if (s7 !== peg$FAILED) {
1136
+ s4 = [s4, s5, s6, s7];
1137
+ s3 = s4;
1138
+ }
1139
+ else {
1140
+ peg$currPos = s3;
1141
+ s3 = peg$FAILED;
1142
+ }
1143
+ }
1144
+ else {
1145
+ peg$currPos = s3;
1146
+ s3 = peg$FAILED;
1147
+ }
1148
+ while (s3 !== peg$FAILED) {
1149
+ s2.push(s3);
1150
+ s3 = peg$currPos;
1151
+ s4 = peg$parse_();
1152
+ if (input.substr(peg$currPos, 2) === peg$c9) {
1153
+ s5 = peg$c9;
1154
+ peg$currPos += 2;
1155
+ }
1156
+ else {
1157
+ s5 = peg$FAILED;
1158
+ if (peg$silentFails === 0) {
1159
+ peg$fail(peg$e11);
1160
+ }
1161
+ }
1162
+ if (s5 === peg$FAILED) {
1163
+ if (input.substr(peg$currPos, 2) === peg$c10) {
1164
+ s5 = peg$c10;
1165
+ peg$currPos += 2;
1166
+ }
1167
+ else {
1168
+ s5 = peg$FAILED;
1169
+ if (peg$silentFails === 0) {
1170
+ peg$fail(peg$e12);
1171
+ }
1172
+ }
1173
+ }
1174
+ if (s5 !== peg$FAILED) {
1175
+ s6 = peg$parse_();
1176
+ s7 = peg$parseComparison();
1177
+ if (s7 !== peg$FAILED) {
1178
+ s4 = [s4, s5, s6, s7];
1179
+ s3 = s4;
1180
+ }
1181
+ else {
1182
+ peg$currPos = s3;
1183
+ s3 = peg$FAILED;
1184
+ }
1185
+ }
1186
+ else {
1187
+ peg$currPos = s3;
1188
+ s3 = peg$FAILED;
1189
+ }
1190
+ }
1191
+ peg$savedPos = s0;
1192
+ s0 = peg$f14(s1, s2);
1193
+ }
1194
+ else {
1195
+ peg$currPos = s0;
1196
+ s0 = peg$FAILED;
1197
+ }
1198
+ return s0;
1199
+ }
1200
+ function peg$parseComparison() {
1201
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1202
+ s0 = peg$currPos;
1203
+ s1 = peg$parseSum();
1204
+ if (s1 !== peg$FAILED) {
1205
+ s2 = [];
1206
+ s3 = peg$currPos;
1207
+ s4 = peg$parse_();
1208
+ if (input.substr(peg$currPos, 2) === peg$c11) {
1209
+ s5 = peg$c11;
1210
+ peg$currPos += 2;
1211
+ }
1212
+ else {
1213
+ s5 = peg$FAILED;
1214
+ if (peg$silentFails === 0) {
1215
+ peg$fail(peg$e13);
1216
+ }
1217
+ }
1218
+ if (s5 === peg$FAILED) {
1219
+ if (input.charCodeAt(peg$currPos) === 62) {
1220
+ s5 = peg$c12;
1221
+ peg$currPos++;
1222
+ }
1223
+ else {
1224
+ s5 = peg$FAILED;
1225
+ if (peg$silentFails === 0) {
1226
+ peg$fail(peg$e14);
1227
+ }
1228
+ }
1229
+ if (s5 === peg$FAILED) {
1230
+ if (input.substr(peg$currPos, 2) === peg$c13) {
1231
+ s5 = peg$c13;
1232
+ peg$currPos += 2;
1233
+ }
1234
+ else {
1235
+ s5 = peg$FAILED;
1236
+ if (peg$silentFails === 0) {
1237
+ peg$fail(peg$e15);
1238
+ }
1239
+ }
1240
+ if (s5 === peg$FAILED) {
1241
+ if (input.charCodeAt(peg$currPos) === 60) {
1242
+ s5 = peg$c14;
1243
+ peg$currPos++;
1244
+ }
1245
+ else {
1246
+ s5 = peg$FAILED;
1247
+ if (peg$silentFails === 0) {
1248
+ peg$fail(peg$e16);
1249
+ }
1250
+ }
1251
+ }
1252
+ }
1253
+ }
1254
+ if (s5 !== peg$FAILED) {
1255
+ s6 = peg$parse_();
1256
+ s7 = peg$parseSum();
1257
+ if (s7 !== peg$FAILED) {
1258
+ s4 = [s4, s5, s6, s7];
1259
+ s3 = s4;
1260
+ }
1261
+ else {
1262
+ peg$currPos = s3;
1263
+ s3 = peg$FAILED;
1264
+ }
1265
+ }
1266
+ else {
1267
+ peg$currPos = s3;
1268
+ s3 = peg$FAILED;
1269
+ }
1270
+ while (s3 !== peg$FAILED) {
1271
+ s2.push(s3);
1272
+ s3 = peg$currPos;
1273
+ s4 = peg$parse_();
1274
+ if (input.substr(peg$currPos, 2) === peg$c11) {
1275
+ s5 = peg$c11;
1276
+ peg$currPos += 2;
1277
+ }
1278
+ else {
1279
+ s5 = peg$FAILED;
1280
+ if (peg$silentFails === 0) {
1281
+ peg$fail(peg$e13);
1282
+ }
1283
+ }
1284
+ if (s5 === peg$FAILED) {
1285
+ if (input.charCodeAt(peg$currPos) === 62) {
1286
+ s5 = peg$c12;
1287
+ peg$currPos++;
1288
+ }
1289
+ else {
1290
+ s5 = peg$FAILED;
1291
+ if (peg$silentFails === 0) {
1292
+ peg$fail(peg$e14);
1293
+ }
1294
+ }
1295
+ if (s5 === peg$FAILED) {
1296
+ if (input.substr(peg$currPos, 2) === peg$c13) {
1297
+ s5 = peg$c13;
1298
+ peg$currPos += 2;
1299
+ }
1300
+ else {
1301
+ s5 = peg$FAILED;
1302
+ if (peg$silentFails === 0) {
1303
+ peg$fail(peg$e15);
1304
+ }
1305
+ }
1306
+ if (s5 === peg$FAILED) {
1307
+ if (input.charCodeAt(peg$currPos) === 60) {
1308
+ s5 = peg$c14;
1309
+ peg$currPos++;
1310
+ }
1311
+ else {
1312
+ s5 = peg$FAILED;
1313
+ if (peg$silentFails === 0) {
1314
+ peg$fail(peg$e16);
1315
+ }
1316
+ }
1317
+ }
1318
+ }
1319
+ }
1320
+ if (s5 !== peg$FAILED) {
1321
+ s6 = peg$parse_();
1322
+ s7 = peg$parseSum();
1323
+ if (s7 !== peg$FAILED) {
1324
+ s4 = [s4, s5, s6, s7];
1325
+ s3 = s4;
1326
+ }
1327
+ else {
1328
+ peg$currPos = s3;
1329
+ s3 = peg$FAILED;
1330
+ }
1331
+ }
1332
+ else {
1333
+ peg$currPos = s3;
1334
+ s3 = peg$FAILED;
1335
+ }
1336
+ }
1337
+ peg$savedPos = s0;
1338
+ s0 = peg$f15(s1, s2);
1339
+ }
1340
+ else {
1341
+ peg$currPos = s0;
1342
+ s0 = peg$FAILED;
1343
+ }
1344
+ return s0;
1345
+ }
1346
+ function peg$parseSum() {
1347
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1348
+ s0 = peg$currPos;
1349
+ s1 = peg$parseFactor();
1350
+ if (s1 !== peg$FAILED) {
1351
+ s2 = [];
1352
+ s3 = peg$currPos;
1353
+ s4 = peg$parse_();
1354
+ if (input.charCodeAt(peg$currPos) === 43) {
1355
+ s5 = peg$c15;
1356
+ peg$currPos++;
1357
+ }
1358
+ else {
1359
+ s5 = peg$FAILED;
1360
+ if (peg$silentFails === 0) {
1361
+ peg$fail(peg$e17);
1362
+ }
1363
+ }
1364
+ if (s5 === peg$FAILED) {
1365
+ if (input.charCodeAt(peg$currPos) === 45) {
1366
+ s5 = peg$c16;
1367
+ peg$currPos++;
1368
+ }
1369
+ else {
1370
+ s5 = peg$FAILED;
1371
+ if (peg$silentFails === 0) {
1372
+ peg$fail(peg$e18);
1373
+ }
1374
+ }
1375
+ }
1376
+ if (s5 !== peg$FAILED) {
1377
+ s6 = peg$parse_();
1378
+ s7 = peg$parseFactor();
1379
+ if (s7 !== peg$FAILED) {
1380
+ s4 = [s4, s5, s6, s7];
1381
+ s3 = s4;
1382
+ }
1383
+ else {
1384
+ peg$currPos = s3;
1385
+ s3 = peg$FAILED;
1386
+ }
1387
+ }
1388
+ else {
1389
+ peg$currPos = s3;
1390
+ s3 = peg$FAILED;
1391
+ }
1392
+ while (s3 !== peg$FAILED) {
1393
+ s2.push(s3);
1394
+ s3 = peg$currPos;
1395
+ s4 = peg$parse_();
1396
+ if (input.charCodeAt(peg$currPos) === 43) {
1397
+ s5 = peg$c15;
1398
+ peg$currPos++;
1399
+ }
1400
+ else {
1401
+ s5 = peg$FAILED;
1402
+ if (peg$silentFails === 0) {
1403
+ peg$fail(peg$e17);
1404
+ }
1405
+ }
1406
+ if (s5 === peg$FAILED) {
1407
+ if (input.charCodeAt(peg$currPos) === 45) {
1408
+ s5 = peg$c16;
1409
+ peg$currPos++;
1410
+ }
1411
+ else {
1412
+ s5 = peg$FAILED;
1413
+ if (peg$silentFails === 0) {
1414
+ peg$fail(peg$e18);
1415
+ }
1416
+ }
1417
+ }
1418
+ if (s5 !== peg$FAILED) {
1419
+ s6 = peg$parse_();
1420
+ s7 = peg$parseFactor();
1421
+ if (s7 !== peg$FAILED) {
1422
+ s4 = [s4, s5, s6, s7];
1423
+ s3 = s4;
1424
+ }
1425
+ else {
1426
+ peg$currPos = s3;
1427
+ s3 = peg$FAILED;
1428
+ }
1429
+ }
1430
+ else {
1431
+ peg$currPos = s3;
1432
+ s3 = peg$FAILED;
1433
+ }
1434
+ }
1435
+ peg$savedPos = s0;
1436
+ s0 = peg$f16(s1, s2);
1437
+ }
1438
+ else {
1439
+ peg$currPos = s0;
1440
+ s0 = peg$FAILED;
1441
+ }
1442
+ return s0;
1443
+ }
1444
+ function peg$parseFactor() {
1445
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1446
+ s0 = peg$currPos;
1447
+ s1 = peg$parseUnaryExpression();
1448
+ if (s1 !== peg$FAILED) {
1449
+ s2 = [];
1450
+ s3 = peg$currPos;
1451
+ s4 = peg$parse_();
1452
+ if (input.charCodeAt(peg$currPos) === 47) {
1453
+ s5 = peg$c17;
1454
+ peg$currPos++;
1455
+ }
1456
+ else {
1457
+ s5 = peg$FAILED;
1458
+ if (peg$silentFails === 0) {
1459
+ peg$fail(peg$e19);
1460
+ }
1461
+ }
1462
+ if (s5 === peg$FAILED) {
1463
+ if (input.charCodeAt(peg$currPos) === 42) {
1464
+ s5 = peg$c18;
1465
+ peg$currPos++;
1466
+ }
1467
+ else {
1468
+ s5 = peg$FAILED;
1469
+ if (peg$silentFails === 0) {
1470
+ peg$fail(peg$e20);
1471
+ }
1472
+ }
1473
+ if (s5 === peg$FAILED) {
1474
+ if (input.charCodeAt(peg$currPos) === 37) {
1475
+ s5 = peg$c19;
1476
+ peg$currPos++;
1477
+ }
1478
+ else {
1479
+ s5 = peg$FAILED;
1480
+ if (peg$silentFails === 0) {
1481
+ peg$fail(peg$e21);
1482
+ }
1483
+ }
1484
+ }
1485
+ }
1486
+ if (s5 !== peg$FAILED) {
1487
+ s6 = peg$parse_();
1488
+ s7 = peg$parseUnaryExpression();
1489
+ if (s7 !== peg$FAILED) {
1490
+ s4 = [s4, s5, s6, s7];
1491
+ s3 = s4;
1492
+ }
1493
+ else {
1494
+ peg$currPos = s3;
1495
+ s3 = peg$FAILED;
1496
+ }
1497
+ }
1498
+ else {
1499
+ peg$currPos = s3;
1500
+ s3 = peg$FAILED;
1501
+ }
1502
+ while (s3 !== peg$FAILED) {
1503
+ s2.push(s3);
1504
+ s3 = peg$currPos;
1505
+ s4 = peg$parse_();
1506
+ if (input.charCodeAt(peg$currPos) === 47) {
1507
+ s5 = peg$c17;
1508
+ peg$currPos++;
1509
+ }
1510
+ else {
1511
+ s5 = peg$FAILED;
1512
+ if (peg$silentFails === 0) {
1513
+ peg$fail(peg$e19);
1514
+ }
1515
+ }
1516
+ if (s5 === peg$FAILED) {
1517
+ if (input.charCodeAt(peg$currPos) === 42) {
1518
+ s5 = peg$c18;
1519
+ peg$currPos++;
1520
+ }
1521
+ else {
1522
+ s5 = peg$FAILED;
1523
+ if (peg$silentFails === 0) {
1524
+ peg$fail(peg$e20);
1525
+ }
1526
+ }
1527
+ if (s5 === peg$FAILED) {
1528
+ if (input.charCodeAt(peg$currPos) === 37) {
1529
+ s5 = peg$c19;
1530
+ peg$currPos++;
1531
+ }
1532
+ else {
1533
+ s5 = peg$FAILED;
1534
+ if (peg$silentFails === 0) {
1535
+ peg$fail(peg$e21);
1536
+ }
1537
+ }
1538
+ }
1539
+ }
1540
+ if (s5 !== peg$FAILED) {
1541
+ s6 = peg$parse_();
1542
+ s7 = peg$parseUnaryExpression();
1543
+ if (s7 !== peg$FAILED) {
1544
+ s4 = [s4, s5, s6, s7];
1545
+ s3 = s4;
1546
+ }
1547
+ else {
1548
+ peg$currPos = s3;
1549
+ s3 = peg$FAILED;
1550
+ }
1551
+ }
1552
+ else {
1553
+ peg$currPos = s3;
1554
+ s3 = peg$FAILED;
1555
+ }
1556
+ }
1557
+ peg$savedPos = s0;
1558
+ s0 = peg$f17(s1, s2);
1559
+ }
1560
+ else {
1561
+ peg$currPos = s0;
1562
+ s0 = peg$FAILED;
1563
+ }
1564
+ return s0;
1565
+ }
1566
+ function peg$parseUnaryExpression() {
1567
+ var s0, s1, s2, s3;
1568
+ s0 = peg$currPos;
1569
+ s1 = peg$currPos;
1570
+ peg$silentFails++;
1571
+ if (input.charCodeAt(peg$currPos) === 45) {
1572
+ s2 = peg$c16;
1573
+ peg$currPos++;
1574
+ }
1575
+ else {
1576
+ s2 = peg$FAILED;
1577
+ if (peg$silentFails === 0) {
1578
+ peg$fail(peg$e18);
1579
+ }
1580
+ }
1581
+ peg$silentFails--;
1582
+ if (s2 !== peg$FAILED) {
1583
+ peg$currPos = s1;
1584
+ s1 = undefined;
1585
+ }
1586
+ else {
1587
+ s1 = peg$FAILED;
1588
+ }
1589
+ if (s1 !== peg$FAILED) {
1590
+ s2 = peg$parseNumber();
1591
+ if (s2 !== peg$FAILED) {
1592
+ peg$savedPos = s0;
1593
+ s0 = peg$f18(s2);
1594
+ }
1595
+ else {
1596
+ peg$currPos = s0;
1597
+ s0 = peg$FAILED;
1598
+ }
1599
+ }
1600
+ else {
1601
+ peg$currPos = s0;
1602
+ s0 = peg$FAILED;
1603
+ }
1604
+ if (s0 === peg$FAILED) {
1605
+ s0 = peg$currPos;
1606
+ s1 = peg$currPos;
1607
+ peg$silentFails++;
1608
+ if (input.charCodeAt(peg$currPos) === 45) {
1609
+ s2 = peg$c16;
1610
+ peg$currPos++;
1611
+ }
1612
+ else {
1613
+ s2 = peg$FAILED;
1614
+ if (peg$silentFails === 0) {
1615
+ peg$fail(peg$e18);
1616
+ }
1617
+ }
1618
+ peg$silentFails--;
1619
+ if (s2 !== peg$FAILED) {
1620
+ peg$currPos = s1;
1621
+ s1 = undefined;
1622
+ }
1623
+ else {
1624
+ s1 = peg$FAILED;
1625
+ }
1626
+ if (s1 !== peg$FAILED) {
1627
+ s2 = peg$parseInteger();
1628
+ if (s2 !== peg$FAILED) {
1629
+ peg$savedPos = s0;
1630
+ s0 = peg$f19(s2);
1631
+ }
1632
+ else {
1633
+ peg$currPos = s0;
1634
+ s0 = peg$FAILED;
1635
+ }
1636
+ }
1637
+ else {
1638
+ peg$currPos = s0;
1639
+ s0 = peg$FAILED;
1640
+ }
1641
+ if (s0 === peg$FAILED) {
1642
+ s0 = peg$currPos;
1643
+ if (input.charCodeAt(peg$currPos) === 33) {
1644
+ s1 = peg$c20;
1645
+ peg$currPos++;
1646
+ }
1647
+ else {
1648
+ s1 = peg$FAILED;
1649
+ if (peg$silentFails === 0) {
1650
+ peg$fail(peg$e22);
1651
+ }
1652
+ }
1653
+ if (s1 === peg$FAILED) {
1654
+ if (input.charCodeAt(peg$currPos) === 43) {
1655
+ s1 = peg$c15;
1656
+ peg$currPos++;
1657
+ }
1658
+ else {
1659
+ s1 = peg$FAILED;
1660
+ if (peg$silentFails === 0) {
1661
+ peg$fail(peg$e17);
1662
+ }
1663
+ }
1664
+ if (s1 === peg$FAILED) {
1665
+ if (input.charCodeAt(peg$currPos) === 45) {
1666
+ s1 = peg$c16;
1667
+ peg$currPos++;
1668
+ }
1669
+ else {
1670
+ s1 = peg$FAILED;
1671
+ if (peg$silentFails === 0) {
1672
+ peg$fail(peg$e18);
1673
+ }
1674
+ }
1675
+ }
1676
+ }
1677
+ if (s1 !== peg$FAILED) {
1678
+ s2 = peg$parse_();
1679
+ s3 = peg$parseDoubleUnaryExpressionCatch();
1680
+ if (s3 === peg$FAILED) {
1681
+ s3 = peg$parseMethod();
1682
+ }
1683
+ if (s3 !== peg$FAILED) {
1684
+ peg$savedPos = s0;
1685
+ s0 = peg$f20(s1, s3);
1686
+ }
1687
+ else {
1688
+ peg$currPos = s0;
1689
+ s0 = peg$FAILED;
1690
+ }
1691
+ }
1692
+ else {
1693
+ peg$currPos = s0;
1694
+ s0 = peg$FAILED;
1695
+ }
1696
+ if (s0 === peg$FAILED) {
1697
+ s0 = peg$parseMethod();
1698
+ }
1699
+ }
1700
+ }
1701
+ return s0;
1702
+ }
1703
+ function peg$parseDoubleUnaryExpressionCatch() {
1704
+ var s0, s1;
1705
+ s0 = peg$currPos;
1706
+ if (input.charCodeAt(peg$currPos) === 43) {
1707
+ s1 = peg$c15;
1708
+ peg$currPos++;
1709
+ }
1710
+ else {
1711
+ s1 = peg$FAILED;
1712
+ if (peg$silentFails === 0) {
1713
+ peg$fail(peg$e17);
1714
+ }
1715
+ }
1716
+ if (s1 === peg$FAILED) {
1717
+ if (input.charCodeAt(peg$currPos) === 45) {
1718
+ s1 = peg$c16;
1719
+ peg$currPos++;
1720
+ }
1721
+ else {
1722
+ s1 = peg$FAILED;
1723
+ if (peg$silentFails === 0) {
1724
+ peg$fail(peg$e18);
1725
+ }
1726
+ }
1727
+ }
1728
+ if (s1 !== peg$FAILED) {
1729
+ peg$savedPos = s0;
1730
+ s1 = peg$f21();
1731
+ }
1732
+ s0 = s1;
1733
+ return s0;
1734
+ }
1735
+ function peg$parseMethod() {
1736
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
1737
+ s0 = peg$currPos;
1738
+ s1 = peg$parseCall();
1739
+ if (s1 !== peg$FAILED) {
1740
+ s2 = [];
1741
+ s3 = peg$currPos;
1742
+ s4 = peg$parse_();
1743
+ if (input.charCodeAt(peg$currPos) === 46) {
1744
+ s5 = peg$c21;
1745
+ peg$currPos++;
1746
+ }
1747
+ else {
1748
+ s5 = peg$FAILED;
1749
+ if (peg$silentFails === 0) {
1750
+ peg$fail(peg$e23);
1751
+ }
1752
+ }
1753
+ if (s5 !== peg$FAILED) {
1754
+ s6 = peg$parse_();
1755
+ s7 = peg$parseStrictIdentifier();
1756
+ if (s7 !== peg$FAILED) {
1757
+ s8 = peg$parse_();
1758
+ s9 = peg$currPos;
1759
+ if (input.charCodeAt(peg$currPos) === 40) {
1760
+ s10 = peg$c22;
1761
+ peg$currPos++;
1762
+ }
1763
+ else {
1764
+ s10 = peg$FAILED;
1765
+ if (peg$silentFails === 0) {
1766
+ peg$fail(peg$e24);
1767
+ }
1768
+ }
1769
+ if (s10 !== peg$FAILED) {
1770
+ s11 = peg$parse_();
1771
+ s12 = peg$parseArguments();
1772
+ if (s12 !== peg$FAILED) {
1773
+ s13 = peg$parse_();
1774
+ if (input.charCodeAt(peg$currPos) === 41) {
1775
+ s14 = peg$c23;
1776
+ peg$currPos++;
1777
+ }
1778
+ else {
1779
+ s14 = peg$FAILED;
1780
+ if (peg$silentFails === 0) {
1781
+ peg$fail(peg$e25);
1782
+ }
1783
+ }
1784
+ if (s14 !== peg$FAILED) {
1785
+ s10 = [s10, s11, s12, s13, s14];
1786
+ s9 = s10;
1787
+ }
1788
+ else {
1789
+ peg$currPos = s9;
1790
+ s9 = peg$FAILED;
1791
+ }
1792
+ }
1793
+ else {
1794
+ peg$currPos = s9;
1795
+ s9 = peg$FAILED;
1796
+ }
1797
+ }
1798
+ else {
1799
+ peg$currPos = s9;
1800
+ s9 = peg$FAILED;
1801
+ }
1802
+ if (s9 === peg$FAILED) {
1803
+ s9 = null;
1804
+ }
1805
+ s4 = [s4, s5, s6, s7, s8, s9];
1806
+ s3 = s4;
1807
+ }
1808
+ else {
1809
+ peg$currPos = s3;
1810
+ s3 = peg$FAILED;
1811
+ }
1812
+ }
1813
+ else {
1814
+ peg$currPos = s3;
1815
+ s3 = peg$FAILED;
1816
+ }
1817
+ while (s3 !== peg$FAILED) {
1818
+ s2.push(s3);
1819
+ s3 = peg$currPos;
1820
+ s4 = peg$parse_();
1821
+ if (input.charCodeAt(peg$currPos) === 46) {
1822
+ s5 = peg$c21;
1823
+ peg$currPos++;
1824
+ }
1825
+ else {
1826
+ s5 = peg$FAILED;
1827
+ if (peg$silentFails === 0) {
1828
+ peg$fail(peg$e23);
1829
+ }
1830
+ }
1831
+ if (s5 !== peg$FAILED) {
1832
+ s6 = peg$parse_();
1833
+ s7 = peg$parseStrictIdentifier();
1834
+ if (s7 !== peg$FAILED) {
1835
+ s8 = peg$parse_();
1836
+ s9 = peg$currPos;
1837
+ if (input.charCodeAt(peg$currPos) === 40) {
1838
+ s10 = peg$c22;
1839
+ peg$currPos++;
1840
+ }
1841
+ else {
1842
+ s10 = peg$FAILED;
1843
+ if (peg$silentFails === 0) {
1844
+ peg$fail(peg$e24);
1845
+ }
1846
+ }
1847
+ if (s10 !== peg$FAILED) {
1848
+ s11 = peg$parse_();
1849
+ s12 = peg$parseArguments();
1850
+ if (s12 !== peg$FAILED) {
1851
+ s13 = peg$parse_();
1852
+ if (input.charCodeAt(peg$currPos) === 41) {
1853
+ s14 = peg$c23;
1854
+ peg$currPos++;
1855
+ }
1856
+ else {
1857
+ s14 = peg$FAILED;
1858
+ if (peg$silentFails === 0) {
1859
+ peg$fail(peg$e25);
1860
+ }
1861
+ }
1862
+ if (s14 !== peg$FAILED) {
1863
+ s10 = [s10, s11, s12, s13, s14];
1864
+ s9 = s10;
1865
+ }
1866
+ else {
1867
+ peg$currPos = s9;
1868
+ s9 = peg$FAILED;
1869
+ }
1870
+ }
1871
+ else {
1872
+ peg$currPos = s9;
1873
+ s9 = peg$FAILED;
1874
+ }
1875
+ }
1876
+ else {
1877
+ peg$currPos = s9;
1878
+ s9 = peg$FAILED;
1879
+ }
1880
+ if (s9 === peg$FAILED) {
1881
+ s9 = null;
1882
+ }
1883
+ s4 = [s4, s5, s6, s7, s8, s9];
1884
+ s3 = s4;
1885
+ }
1886
+ else {
1887
+ peg$currPos = s3;
1888
+ s3 = peg$FAILED;
1889
+ }
1890
+ }
1891
+ else {
1892
+ peg$currPos = s3;
1893
+ s3 = peg$FAILED;
1894
+ }
1895
+ }
1896
+ peg$savedPos = s0;
1897
+ s0 = peg$f22(s1, s2);
1898
+ }
1899
+ else {
1900
+ peg$currPos = s0;
1901
+ s0 = peg$FAILED;
1902
+ }
1903
+ return s0;
1904
+ }
1905
+ function peg$parseCall() {
1906
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1907
+ s0 = peg$currPos;
1908
+ s1 = peg$parseStrictIdentifier();
1909
+ if (s1 !== peg$FAILED) {
1910
+ s2 = peg$parse_();
1911
+ if (input.charCodeAt(peg$currPos) === 40) {
1912
+ s3 = peg$c22;
1913
+ peg$currPos++;
1914
+ }
1915
+ else {
1916
+ s3 = peg$FAILED;
1917
+ if (peg$silentFails === 0) {
1918
+ peg$fail(peg$e24);
1919
+ }
1920
+ }
1921
+ if (s3 !== peg$FAILED) {
1922
+ s4 = peg$parse_();
1923
+ s5 = peg$parseArguments();
1924
+ if (s5 !== peg$FAILED) {
1925
+ s6 = peg$parse_();
1926
+ if (input.charCodeAt(peg$currPos) === 41) {
1927
+ s7 = peg$c23;
1928
+ peg$currPos++;
1929
+ }
1930
+ else {
1931
+ s7 = peg$FAILED;
1932
+ if (peg$silentFails === 0) {
1933
+ peg$fail(peg$e25);
1934
+ }
1935
+ }
1936
+ if (s7 !== peg$FAILED) {
1937
+ peg$savedPos = s0;
1938
+ s0 = peg$f23(s1, s5);
1939
+ }
1940
+ else {
1941
+ peg$currPos = s0;
1942
+ s0 = peg$FAILED;
1943
+ }
1944
+ }
1945
+ else {
1946
+ peg$currPos = s0;
1947
+ s0 = peg$FAILED;
1948
+ }
1949
+ }
1950
+ else {
1951
+ peg$currPos = s0;
1952
+ s0 = peg$FAILED;
1953
+ }
1954
+ }
1955
+ else {
1956
+ peg$currPos = s0;
1957
+ s0 = peg$FAILED;
1958
+ }
1959
+ if (s0 === peg$FAILED) {
1960
+ s0 = peg$parsePrimaryExpression();
1961
+ }
1962
+ return s0;
1963
+ }
1964
+ function peg$parseArguments() {
1965
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1966
+ s0 = peg$currPos;
1967
+ s1 = peg$parseExpression();
1968
+ if (s1 !== peg$FAILED) {
1969
+ s2 = [];
1970
+ s3 = peg$currPos;
1971
+ s4 = peg$parse_();
1972
+ if (input.charCodeAt(peg$currPos) === 44) {
1973
+ s5 = peg$c24;
1974
+ peg$currPos++;
1975
+ }
1976
+ else {
1977
+ s5 = peg$FAILED;
1978
+ if (peg$silentFails === 0) {
1979
+ peg$fail(peg$e26);
1980
+ }
1981
+ }
1982
+ if (s5 !== peg$FAILED) {
1983
+ s6 = peg$parse_();
1984
+ s7 = peg$parseExpression();
1985
+ if (s7 !== peg$FAILED) {
1986
+ s3 = s7;
1987
+ }
1988
+ else {
1989
+ peg$currPos = s3;
1990
+ s3 = peg$FAILED;
1991
+ }
1992
+ }
1993
+ else {
1994
+ peg$currPos = s3;
1995
+ s3 = peg$FAILED;
1996
+ }
1997
+ while (s3 !== peg$FAILED) {
1998
+ s2.push(s3);
1999
+ s3 = peg$currPos;
2000
+ s4 = peg$parse_();
2001
+ if (input.charCodeAt(peg$currPos) === 44) {
2002
+ s5 = peg$c24;
2003
+ peg$currPos++;
2004
+ }
2005
+ else {
2006
+ s5 = peg$FAILED;
2007
+ if (peg$silentFails === 0) {
2008
+ peg$fail(peg$e26);
2009
+ }
2010
+ }
2011
+ if (s5 !== peg$FAILED) {
2012
+ s6 = peg$parse_();
2013
+ s7 = peg$parseExpression();
2014
+ if (s7 !== peg$FAILED) {
2015
+ s3 = s7;
2016
+ }
2017
+ else {
2018
+ peg$currPos = s3;
2019
+ s3 = peg$FAILED;
2020
+ }
2021
+ }
2022
+ else {
2023
+ peg$currPos = s3;
2024
+ s3 = peg$FAILED;
2025
+ }
2026
+ }
2027
+ peg$savedPos = s0;
2028
+ s0 = peg$f24(s1, s2);
2029
+ }
2030
+ else {
2031
+ peg$currPos = s0;
2032
+ s0 = peg$FAILED;
2033
+ }
2034
+ if (s0 === peg$FAILED) {
2035
+ s0 = peg$parse_();
2036
+ }
2037
+ return s0;
2038
+ }
2039
+ function peg$parsePrimaryExpression() {
2040
+ var s0, s1, s2, s3, s4, s5;
2041
+ s0 = peg$parseIdentifierOrBoolean();
2042
+ if (s0 === peg$FAILED) {
2043
+ s0 = peg$parseString();
2044
+ if (s0 === peg$FAILED) {
2045
+ s0 = peg$parseNumber();
2046
+ if (s0 === peg$FAILED) {
2047
+ s0 = peg$parseInteger();
2048
+ if (s0 === peg$FAILED) {
2049
+ s0 = peg$currPos;
2050
+ if (input.charCodeAt(peg$currPos) === 40) {
2051
+ s1 = peg$c22;
2052
+ peg$currPos++;
2053
+ }
2054
+ else {
2055
+ s1 = peg$FAILED;
2056
+ if (peg$silentFails === 0) {
2057
+ peg$fail(peg$e24);
2058
+ }
2059
+ }
2060
+ if (s1 !== peg$FAILED) {
2061
+ s2 = peg$parse_();
2062
+ s3 = peg$parseExpression();
2063
+ if (s3 !== peg$FAILED) {
2064
+ s4 = peg$parse_();
2065
+ if (input.charCodeAt(peg$currPos) === 41) {
2066
+ s5 = peg$c23;
2067
+ peg$currPos++;
2068
+ }
2069
+ else {
2070
+ s5 = peg$FAILED;
2071
+ if (peg$silentFails === 0) {
2072
+ peg$fail(peg$e25);
2073
+ }
2074
+ }
2075
+ if (s5 !== peg$FAILED) {
2076
+ peg$savedPos = s0;
2077
+ s0 = peg$f25(s3);
2078
+ }
2079
+ else {
2080
+ peg$currPos = s0;
2081
+ s0 = peg$FAILED;
2082
+ }
2083
+ }
2084
+ else {
2085
+ peg$currPos = s0;
2086
+ s0 = peg$FAILED;
2087
+ }
2088
+ }
2089
+ else {
2090
+ peg$currPos = s0;
2091
+ s0 = peg$FAILED;
2092
+ }
2093
+ }
2094
+ }
2095
+ }
2096
+ }
2097
+ return s0;
2098
+ }
2099
+ function peg$parseString() {
2100
+ var s0, s1, s2, s3;
2101
+ peg$silentFails++;
2102
+ s0 = peg$currPos;
2103
+ if (input.charCodeAt(peg$currPos) === 39) {
2104
+ s1 = peg$c25;
2105
+ peg$currPos++;
2106
+ }
2107
+ else {
2108
+ s1 = peg$FAILED;
2109
+ if (peg$silentFails === 0) {
2110
+ peg$fail(peg$e28);
2111
+ }
2112
+ }
2113
+ if (s1 !== peg$FAILED) {
2114
+ s2 = peg$parseStringContents();
2115
+ if (input.charCodeAt(peg$currPos) === 39) {
2116
+ s3 = peg$c25;
2117
+ peg$currPos++;
2118
+ }
2119
+ else {
2120
+ s3 = peg$FAILED;
2121
+ if (peg$silentFails === 0) {
2122
+ peg$fail(peg$e28);
2123
+ }
2124
+ }
2125
+ if (s3 !== peg$FAILED) {
2126
+ peg$savedPos = s0;
2127
+ s0 = peg$f26(s2);
2128
+ }
2129
+ else {
2130
+ peg$currPos = s0;
2131
+ s0 = peg$FAILED;
2132
+ }
2133
+ }
2134
+ else {
2135
+ peg$currPos = s0;
2136
+ s0 = peg$FAILED;
2137
+ }
2138
+ peg$silentFails--;
2139
+ if (s0 === peg$FAILED) {
2140
+ s1 = peg$FAILED;
2141
+ if (peg$silentFails === 0) {
2142
+ peg$fail(peg$e27);
2143
+ }
2144
+ }
2145
+ return s0;
2146
+ }
2147
+ function peg$parseStringContents() {
2148
+ var s0, s1, s2;
2149
+ s0 = peg$currPos;
2150
+ s1 = [];
2151
+ s2 = peg$parseStringChar();
2152
+ while (s2 !== peg$FAILED) {
2153
+ s1.push(s2);
2154
+ s2 = peg$parseStringChar();
2155
+ }
2156
+ peg$savedPos = s0;
2157
+ s1 = peg$f27(s1);
2158
+ s0 = s1;
2159
+ return s0;
2160
+ }
2161
+ function peg$parseStringChar() {
2162
+ var s0, s1, s2, s3, s4, s5;
2163
+ s0 = peg$currPos;
2164
+ if (input.substr(peg$currPos, 2) === peg$c0) {
2165
+ s1 = peg$c0;
2166
+ peg$currPos += 2;
2167
+ }
2168
+ else {
2169
+ s1 = peg$FAILED;
2170
+ if (peg$silentFails === 0) {
2171
+ peg$fail(peg$e0);
2172
+ }
2173
+ }
2174
+ if (s1 !== peg$FAILED) {
2175
+ s2 = peg$parse_();
2176
+ s3 = peg$parseExpression();
2177
+ if (s3 !== peg$FAILED) {
2178
+ s4 = peg$parse_();
2179
+ if (input.charCodeAt(peg$currPos) === 125) {
2180
+ s5 = peg$c1;
2181
+ peg$currPos++;
2182
+ }
2183
+ else {
2184
+ s5 = peg$FAILED;
2185
+ if (peg$silentFails === 0) {
2186
+ peg$fail(peg$e1);
2187
+ }
2188
+ }
2189
+ if (s5 !== peg$FAILED) {
2190
+ peg$savedPos = s0;
2191
+ s0 = peg$f28(s3);
2192
+ }
2193
+ else {
2194
+ peg$currPos = s0;
2195
+ s0 = peg$FAILED;
2196
+ }
2197
+ }
2198
+ else {
2199
+ peg$currPos = s0;
2200
+ s0 = peg$FAILED;
2201
+ }
2202
+ }
2203
+ else {
2204
+ peg$currPos = s0;
2205
+ s0 = peg$FAILED;
2206
+ }
2207
+ if (s0 === peg$FAILED) {
2208
+ s0 = peg$currPos;
2209
+ if (input.substr(peg$currPos, 3) === peg$c2) {
2210
+ s1 = peg$c2;
2211
+ peg$currPos += 3;
2212
+ }
2213
+ else {
2214
+ s1 = peg$FAILED;
2215
+ if (peg$silentFails === 0) {
2216
+ peg$fail(peg$e2);
2217
+ }
2218
+ }
2219
+ if (s1 !== peg$FAILED) {
2220
+ peg$savedPos = s0;
2221
+ s1 = peg$f29();
2222
+ }
2223
+ s0 = s1;
2224
+ if (s0 === peg$FAILED) {
2225
+ s0 = peg$currPos;
2226
+ s1 = peg$currPos;
2227
+ peg$silentFails++;
2228
+ if (input.charCodeAt(peg$currPos) === 92) {
2229
+ s2 = peg$c3;
2230
+ peg$currPos++;
2231
+ }
2232
+ else {
2233
+ s2 = peg$FAILED;
2234
+ if (peg$silentFails === 0) {
2235
+ peg$fail(peg$e3);
2236
+ }
2237
+ }
2238
+ if (s2 === peg$FAILED) {
2239
+ if (input.charCodeAt(peg$currPos) === 39) {
2240
+ s2 = peg$c25;
2241
+ peg$currPos++;
2242
+ }
2243
+ else {
2244
+ s2 = peg$FAILED;
2245
+ if (peg$silentFails === 0) {
2246
+ peg$fail(peg$e28);
2247
+ }
2248
+ }
2249
+ if (s2 === peg$FAILED) {
2250
+ if (input.substr(peg$currPos, 2) === peg$c0) {
2251
+ s2 = peg$c0;
2252
+ peg$currPos += 2;
2253
+ }
2254
+ else {
2255
+ s2 = peg$FAILED;
2256
+ if (peg$silentFails === 0) {
2257
+ peg$fail(peg$e0);
2258
+ }
2259
+ }
2260
+ }
2261
+ }
2262
+ peg$silentFails--;
2263
+ if (s2 === peg$FAILED) {
2264
+ s1 = undefined;
2265
+ }
2266
+ else {
2267
+ peg$currPos = s1;
2268
+ s1 = peg$FAILED;
2269
+ }
2270
+ if (s1 !== peg$FAILED) {
2271
+ if (input.length > peg$currPos) {
2272
+ s2 = input.charAt(peg$currPos);
2273
+ peg$currPos++;
2274
+ }
2275
+ else {
2276
+ s2 = peg$FAILED;
2277
+ if (peg$silentFails === 0) {
2278
+ peg$fail(peg$e4);
2279
+ }
2280
+ }
2281
+ if (s2 !== peg$FAILED) {
2282
+ peg$savedPos = s0;
2283
+ s0 = peg$f30();
2284
+ }
2285
+ else {
2286
+ peg$currPos = s0;
2287
+ s0 = peg$FAILED;
2288
+ }
2289
+ }
2290
+ else {
2291
+ peg$currPos = s0;
2292
+ s0 = peg$FAILED;
2293
+ }
2294
+ if (s0 === peg$FAILED) {
2295
+ s0 = peg$currPos;
2296
+ if (input.substr(peg$currPos, 2) === peg$c0) {
2297
+ s1 = peg$c0;
2298
+ peg$currPos += 2;
2299
+ }
2300
+ else {
2301
+ s1 = peg$FAILED;
2302
+ if (peg$silentFails === 0) {
2303
+ peg$fail(peg$e0);
2304
+ }
2305
+ }
2306
+ if (s1 !== peg$FAILED) {
2307
+ s2 = [];
2308
+ if (peg$r1.test(input.charAt(peg$currPos))) {
2309
+ s3 = input.charAt(peg$currPos);
2310
+ peg$currPos++;
2311
+ }
2312
+ else {
2313
+ s3 = peg$FAILED;
2314
+ if (peg$silentFails === 0) {
2315
+ peg$fail(peg$e29);
2316
+ }
2317
+ }
2318
+ if (s3 !== peg$FAILED) {
2319
+ while (s3 !== peg$FAILED) {
2320
+ s2.push(s3);
2321
+ if (peg$r1.test(input.charAt(peg$currPos))) {
2322
+ s3 = input.charAt(peg$currPos);
2323
+ peg$currPos++;
2324
+ }
2325
+ else {
2326
+ s3 = peg$FAILED;
2327
+ if (peg$silentFails === 0) {
2328
+ peg$fail(peg$e29);
2329
+ }
2330
+ }
2331
+ }
2332
+ }
2333
+ else {
2334
+ s2 = peg$FAILED;
2335
+ }
2336
+ if (s2 !== peg$FAILED) {
2337
+ if (input.charCodeAt(peg$currPos) === 125) {
2338
+ s3 = peg$c1;
2339
+ peg$currPos++;
2340
+ }
2341
+ else {
2342
+ s3 = peg$FAILED;
2343
+ if (peg$silentFails === 0) {
2344
+ peg$fail(peg$e1);
2345
+ }
2346
+ }
2347
+ if (s3 !== peg$FAILED) {
2348
+ peg$savedPos = s0;
2349
+ s0 = peg$f31();
2350
+ }
2351
+ else {
2352
+ peg$currPos = s0;
2353
+ s0 = peg$FAILED;
2354
+ }
2355
+ }
2356
+ else {
2357
+ peg$currPos = s0;
2358
+ s0 = peg$FAILED;
2359
+ }
2360
+ }
2361
+ else {
2362
+ peg$currPos = s0;
2363
+ s0 = peg$FAILED;
2364
+ }
2365
+ if (s0 === peg$FAILED) {
2366
+ s0 = peg$currPos;
2367
+ if (input.substr(peg$currPos, 2) === peg$c0) {
2368
+ s1 = peg$c0;
2369
+ peg$currPos += 2;
2370
+ }
2371
+ else {
2372
+ s1 = peg$FAILED;
2373
+ if (peg$silentFails === 0) {
2374
+ peg$fail(peg$e0);
2375
+ }
2376
+ }
2377
+ if (s1 !== peg$FAILED) {
2378
+ peg$savedPos = s0;
2379
+ s1 = peg$f32();
2380
+ }
2381
+ s0 = s1;
2382
+ if (s0 === peg$FAILED) {
2383
+ s0 = peg$currPos;
2384
+ if (input.charCodeAt(peg$currPos) === 92) {
2385
+ s1 = peg$c3;
2386
+ peg$currPos++;
2387
+ }
2388
+ else {
2389
+ s1 = peg$FAILED;
2390
+ if (peg$silentFails === 0) {
2391
+ peg$fail(peg$e3);
2392
+ }
2393
+ }
2394
+ if (s1 !== peg$FAILED) {
2395
+ if (input.substr(peg$currPos, 2) === peg$c0) {
2396
+ s2 = peg$c0;
2397
+ peg$currPos += 2;
2398
+ }
2399
+ else {
2400
+ s2 = peg$FAILED;
2401
+ if (peg$silentFails === 0) {
2402
+ peg$fail(peg$e0);
2403
+ }
2404
+ }
2405
+ if (s2 !== peg$FAILED) {
2406
+ peg$savedPos = s0;
2407
+ s0 = peg$f33(s2);
2408
+ }
2409
+ else {
2410
+ peg$currPos = s0;
2411
+ s0 = peg$FAILED;
2412
+ }
2413
+ }
2414
+ else {
2415
+ peg$currPos = s0;
2416
+ s0 = peg$FAILED;
2417
+ }
2418
+ if (s0 === peg$FAILED) {
2419
+ s0 = peg$currPos;
2420
+ if (input.charCodeAt(peg$currPos) === 92) {
2421
+ s1 = peg$c3;
2422
+ peg$currPos++;
2423
+ }
2424
+ else {
2425
+ s1 = peg$FAILED;
2426
+ if (peg$silentFails === 0) {
2427
+ peg$fail(peg$e3);
2428
+ }
2429
+ }
2430
+ if (s1 !== peg$FAILED) {
2431
+ if (input.length > peg$currPos) {
2432
+ s2 = input.charAt(peg$currPos);
2433
+ peg$currPos++;
2434
+ }
2435
+ else {
2436
+ s2 = peg$FAILED;
2437
+ if (peg$silentFails === 0) {
2438
+ peg$fail(peg$e4);
2439
+ }
2440
+ }
2441
+ if (s2 !== peg$FAILED) {
2442
+ peg$savedPos = s0;
2443
+ s0 = peg$f34(s2);
2444
+ }
2445
+ else {
2446
+ peg$currPos = s0;
2447
+ s0 = peg$FAILED;
2448
+ }
2449
+ }
2450
+ else {
2451
+ peg$currPos = s0;
2452
+ s0 = peg$FAILED;
2453
+ }
2454
+ if (s0 === peg$FAILED) {
2455
+ s0 = peg$currPos;
2456
+ if (input.charCodeAt(peg$currPos) === 92) {
2457
+ s1 = peg$c3;
2458
+ peg$currPos++;
2459
+ }
2460
+ else {
2461
+ s1 = peg$FAILED;
2462
+ if (peg$silentFails === 0) {
2463
+ peg$fail(peg$e3);
2464
+ }
2465
+ }
2466
+ if (s1 !== peg$FAILED) {
2467
+ peg$savedPos = s0;
2468
+ s1 = peg$f35();
2469
+ }
2470
+ s0 = s1;
2471
+ }
2472
+ }
2473
+ }
2474
+ }
2475
+ }
2476
+ }
2477
+ }
2478
+ return s0;
2479
+ }
2480
+ function peg$parseInteger() {
2481
+ var s0, s1, s2, s3;
2482
+ peg$silentFails++;
2483
+ s0 = peg$currPos;
2484
+ if (input.charCodeAt(peg$currPos) === 45) {
2485
+ s1 = peg$c16;
2486
+ peg$currPos++;
2487
+ }
2488
+ else {
2489
+ s1 = peg$FAILED;
2490
+ if (peg$silentFails === 0) {
2491
+ peg$fail(peg$e18);
2492
+ }
2493
+ }
2494
+ if (s1 === peg$FAILED) {
2495
+ s1 = null;
2496
+ }
2497
+ s2 = [];
2498
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2499
+ s3 = input.charAt(peg$currPos);
2500
+ peg$currPos++;
2501
+ }
2502
+ else {
2503
+ s3 = peg$FAILED;
2504
+ if (peg$silentFails === 0) {
2505
+ peg$fail(peg$e31);
2506
+ }
2507
+ }
2508
+ if (s3 !== peg$FAILED) {
2509
+ while (s3 !== peg$FAILED) {
2510
+ s2.push(s3);
2511
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2512
+ s3 = input.charAt(peg$currPos);
2513
+ peg$currPos++;
2514
+ }
2515
+ else {
2516
+ s3 = peg$FAILED;
2517
+ if (peg$silentFails === 0) {
2518
+ peg$fail(peg$e31);
2519
+ }
2520
+ }
2521
+ }
2522
+ }
2523
+ else {
2524
+ s2 = peg$FAILED;
2525
+ }
2526
+ if (s2 !== peg$FAILED) {
2527
+ peg$savedPos = s0;
2528
+ s0 = peg$f36();
2529
+ }
2530
+ else {
2531
+ peg$currPos = s0;
2532
+ s0 = peg$FAILED;
2533
+ }
2534
+ peg$silentFails--;
2535
+ if (s0 === peg$FAILED) {
2536
+ s1 = peg$FAILED;
2537
+ if (peg$silentFails === 0) {
2538
+ peg$fail(peg$e30);
2539
+ }
2540
+ }
2541
+ return s0;
2542
+ }
2543
+ function peg$parseNumber() {
2544
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
2545
+ peg$silentFails++;
2546
+ s0 = peg$currPos;
2547
+ if (input.charCodeAt(peg$currPos) === 45) {
2548
+ s1 = peg$c16;
2549
+ peg$currPos++;
2550
+ }
2551
+ else {
2552
+ s1 = peg$FAILED;
2553
+ if (peg$silentFails === 0) {
2554
+ peg$fail(peg$e18);
2555
+ }
2556
+ }
2557
+ if (s1 === peg$FAILED) {
2558
+ s1 = null;
2559
+ }
2560
+ s2 = [];
2561
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2562
+ s3 = input.charAt(peg$currPos);
2563
+ peg$currPos++;
2564
+ }
2565
+ else {
2566
+ s3 = peg$FAILED;
2567
+ if (peg$silentFails === 0) {
2568
+ peg$fail(peg$e31);
2569
+ }
2570
+ }
2571
+ while (s3 !== peg$FAILED) {
2572
+ s2.push(s3);
2573
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2574
+ s3 = input.charAt(peg$currPos);
2575
+ peg$currPos++;
2576
+ }
2577
+ else {
2578
+ s3 = peg$FAILED;
2579
+ if (peg$silentFails === 0) {
2580
+ peg$fail(peg$e31);
2581
+ }
2582
+ }
2583
+ }
2584
+ if (input.charCodeAt(peg$currPos) === 46) {
2585
+ s3 = peg$c21;
2586
+ peg$currPos++;
2587
+ }
2588
+ else {
2589
+ s3 = peg$FAILED;
2590
+ if (peg$silentFails === 0) {
2591
+ peg$fail(peg$e23);
2592
+ }
2593
+ }
2594
+ if (s3 !== peg$FAILED) {
2595
+ s4 = [];
2596
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2597
+ s5 = input.charAt(peg$currPos);
2598
+ peg$currPos++;
2599
+ }
2600
+ else {
2601
+ s5 = peg$FAILED;
2602
+ if (peg$silentFails === 0) {
2603
+ peg$fail(peg$e31);
2604
+ }
2605
+ }
2606
+ if (s5 !== peg$FAILED) {
2607
+ while (s5 !== peg$FAILED) {
2608
+ s4.push(s5);
2609
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2610
+ s5 = input.charAt(peg$currPos);
2611
+ peg$currPos++;
2612
+ }
2613
+ else {
2614
+ s5 = peg$FAILED;
2615
+ if (peg$silentFails === 0) {
2616
+ peg$fail(peg$e31);
2617
+ }
2618
+ }
2619
+ }
2620
+ }
2621
+ else {
2622
+ s4 = peg$FAILED;
2623
+ }
2624
+ if (s4 !== peg$FAILED) {
2625
+ s5 = peg$currPos;
2626
+ if (input.charCodeAt(peg$currPos) === 101) {
2627
+ s6 = peg$c26;
2628
+ peg$currPos++;
2629
+ }
2630
+ else {
2631
+ s6 = peg$FAILED;
2632
+ if (peg$silentFails === 0) {
2633
+ peg$fail(peg$e33);
2634
+ }
2635
+ }
2636
+ if (s6 === peg$FAILED) {
2637
+ if (input.charCodeAt(peg$currPos) === 69) {
2638
+ s6 = peg$c27;
2639
+ peg$currPos++;
2640
+ }
2641
+ else {
2642
+ s6 = peg$FAILED;
2643
+ if (peg$silentFails === 0) {
2644
+ peg$fail(peg$e34);
2645
+ }
2646
+ }
2647
+ }
2648
+ if (s6 !== peg$FAILED) {
2649
+ if (input.charCodeAt(peg$currPos) === 43) {
2650
+ s7 = peg$c15;
2651
+ peg$currPos++;
2652
+ }
2653
+ else {
2654
+ s7 = peg$FAILED;
2655
+ if (peg$silentFails === 0) {
2656
+ peg$fail(peg$e17);
2657
+ }
2658
+ }
2659
+ if (s7 === peg$FAILED) {
2660
+ if (input.charCodeAt(peg$currPos) === 45) {
2661
+ s7 = peg$c16;
2662
+ peg$currPos++;
2663
+ }
2664
+ else {
2665
+ s7 = peg$FAILED;
2666
+ if (peg$silentFails === 0) {
2667
+ peg$fail(peg$e18);
2668
+ }
2669
+ }
2670
+ }
2671
+ if (s7 === peg$FAILED) {
2672
+ s7 = null;
2673
+ }
2674
+ s8 = [];
2675
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2676
+ s9 = input.charAt(peg$currPos);
2677
+ peg$currPos++;
2678
+ }
2679
+ else {
2680
+ s9 = peg$FAILED;
2681
+ if (peg$silentFails === 0) {
2682
+ peg$fail(peg$e31);
2683
+ }
2684
+ }
2685
+ if (s9 !== peg$FAILED) {
2686
+ while (s9 !== peg$FAILED) {
2687
+ s8.push(s9);
2688
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2689
+ s9 = input.charAt(peg$currPos);
2690
+ peg$currPos++;
2691
+ }
2692
+ else {
2693
+ s9 = peg$FAILED;
2694
+ if (peg$silentFails === 0) {
2695
+ peg$fail(peg$e31);
2696
+ }
2697
+ }
2698
+ }
2699
+ }
2700
+ else {
2701
+ s8 = peg$FAILED;
2702
+ }
2703
+ if (s8 !== peg$FAILED) {
2704
+ s6 = [s6, s7, s8];
2705
+ s5 = s6;
2706
+ }
2707
+ else {
2708
+ peg$currPos = s5;
2709
+ s5 = peg$FAILED;
2710
+ }
2711
+ }
2712
+ else {
2713
+ peg$currPos = s5;
2714
+ s5 = peg$FAILED;
2715
+ }
2716
+ if (s5 === peg$FAILED) {
2717
+ s5 = null;
2718
+ }
2719
+ peg$savedPos = s0;
2720
+ s0 = peg$f37();
2721
+ }
2722
+ else {
2723
+ peg$currPos = s0;
2724
+ s0 = peg$FAILED;
2725
+ }
2726
+ }
2727
+ else {
2728
+ peg$currPos = s0;
2729
+ s0 = peg$FAILED;
2730
+ }
2731
+ if (s0 === peg$FAILED) {
2732
+ s0 = peg$currPos;
2733
+ if (input.charCodeAt(peg$currPos) === 45) {
2734
+ s1 = peg$c16;
2735
+ peg$currPos++;
2736
+ }
2737
+ else {
2738
+ s1 = peg$FAILED;
2739
+ if (peg$silentFails === 0) {
2740
+ peg$fail(peg$e18);
2741
+ }
2742
+ }
2743
+ if (s1 === peg$FAILED) {
2744
+ s1 = null;
2745
+ }
2746
+ s2 = [];
2747
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2748
+ s3 = input.charAt(peg$currPos);
2749
+ peg$currPos++;
2750
+ }
2751
+ else {
2752
+ s3 = peg$FAILED;
2753
+ if (peg$silentFails === 0) {
2754
+ peg$fail(peg$e31);
2755
+ }
2756
+ }
2757
+ if (s3 !== peg$FAILED) {
2758
+ while (s3 !== peg$FAILED) {
2759
+ s2.push(s3);
2760
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2761
+ s3 = input.charAt(peg$currPos);
2762
+ peg$currPos++;
2763
+ }
2764
+ else {
2765
+ s3 = peg$FAILED;
2766
+ if (peg$silentFails === 0) {
2767
+ peg$fail(peg$e31);
2768
+ }
2769
+ }
2770
+ }
2771
+ }
2772
+ else {
2773
+ s2 = peg$FAILED;
2774
+ }
2775
+ if (s2 !== peg$FAILED) {
2776
+ if (input.charCodeAt(peg$currPos) === 101) {
2777
+ s3 = peg$c26;
2778
+ peg$currPos++;
2779
+ }
2780
+ else {
2781
+ s3 = peg$FAILED;
2782
+ if (peg$silentFails === 0) {
2783
+ peg$fail(peg$e33);
2784
+ }
2785
+ }
2786
+ if (s3 === peg$FAILED) {
2787
+ if (input.charCodeAt(peg$currPos) === 69) {
2788
+ s3 = peg$c27;
2789
+ peg$currPos++;
2790
+ }
2791
+ else {
2792
+ s3 = peg$FAILED;
2793
+ if (peg$silentFails === 0) {
2794
+ peg$fail(peg$e34);
2795
+ }
2796
+ }
2797
+ }
2798
+ if (s3 !== peg$FAILED) {
2799
+ if (input.charCodeAt(peg$currPos) === 43) {
2800
+ s4 = peg$c15;
2801
+ peg$currPos++;
2802
+ }
2803
+ else {
2804
+ s4 = peg$FAILED;
2805
+ if (peg$silentFails === 0) {
2806
+ peg$fail(peg$e17);
2807
+ }
2808
+ }
2809
+ if (s4 === peg$FAILED) {
2810
+ if (input.charCodeAt(peg$currPos) === 45) {
2811
+ s4 = peg$c16;
2812
+ peg$currPos++;
2813
+ }
2814
+ else {
2815
+ s4 = peg$FAILED;
2816
+ if (peg$silentFails === 0) {
2817
+ peg$fail(peg$e18);
2818
+ }
2819
+ }
2820
+ }
2821
+ if (s4 === peg$FAILED) {
2822
+ s4 = null;
2823
+ }
2824
+ s5 = [];
2825
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2826
+ s6 = input.charAt(peg$currPos);
2827
+ peg$currPos++;
2828
+ }
2829
+ else {
2830
+ s6 = peg$FAILED;
2831
+ if (peg$silentFails === 0) {
2832
+ peg$fail(peg$e31);
2833
+ }
2834
+ }
2835
+ if (s6 !== peg$FAILED) {
2836
+ while (s6 !== peg$FAILED) {
2837
+ s5.push(s6);
2838
+ if (peg$r2.test(input.charAt(peg$currPos))) {
2839
+ s6 = input.charAt(peg$currPos);
2840
+ peg$currPos++;
2841
+ }
2842
+ else {
2843
+ s6 = peg$FAILED;
2844
+ if (peg$silentFails === 0) {
2845
+ peg$fail(peg$e31);
2846
+ }
2847
+ }
2848
+ }
2849
+ }
2850
+ else {
2851
+ s5 = peg$FAILED;
2852
+ }
2853
+ if (s5 !== peg$FAILED) {
2854
+ peg$savedPos = s0;
2855
+ s0 = peg$f38();
2856
+ }
2857
+ else {
2858
+ peg$currPos = s0;
2859
+ s0 = peg$FAILED;
2860
+ }
2861
+ }
2862
+ else {
2863
+ peg$currPos = s0;
2864
+ s0 = peg$FAILED;
2865
+ }
2866
+ }
2867
+ else {
2868
+ peg$currPos = s0;
2869
+ s0 = peg$FAILED;
2870
+ }
2871
+ }
2872
+ peg$silentFails--;
2873
+ if (s0 === peg$FAILED) {
2874
+ s1 = peg$FAILED;
2875
+ if (peg$silentFails === 0) {
2876
+ peg$fail(peg$e32);
2877
+ }
2878
+ }
2879
+ return s0;
2880
+ }
2881
+ function peg$parseIdentifierOrBoolean() {
2882
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
2883
+ s0 = peg$currPos;
2884
+ if (peg$r3.test(input.charAt(peg$currPos))) {
2885
+ s1 = input.charAt(peg$currPos);
2886
+ peg$currPos++;
2887
+ }
2888
+ else {
2889
+ s1 = peg$FAILED;
2890
+ if (peg$silentFails === 0) {
2891
+ peg$fail(peg$e35);
2892
+ }
2893
+ }
2894
+ if (s1 !== peg$FAILED) {
2895
+ s2 = [];
2896
+ s3 = [];
2897
+ if (peg$r4.test(input.charAt(peg$currPos))) {
2898
+ s4 = input.charAt(peg$currPos);
2899
+ peg$currPos++;
2900
+ }
2901
+ else {
2902
+ s4 = peg$FAILED;
2903
+ if (peg$silentFails === 0) {
2904
+ peg$fail(peg$e36);
2905
+ }
2906
+ }
2907
+ if (s4 !== peg$FAILED) {
2908
+ while (s4 !== peg$FAILED) {
2909
+ s3.push(s4);
2910
+ if (peg$r4.test(input.charAt(peg$currPos))) {
2911
+ s4 = input.charAt(peg$currPos);
2912
+ peg$currPos++;
2913
+ }
2914
+ else {
2915
+ s4 = peg$FAILED;
2916
+ if (peg$silentFails === 0) {
2917
+ peg$fail(peg$e36);
2918
+ }
2919
+ }
2920
+ }
2921
+ }
2922
+ else {
2923
+ s3 = peg$FAILED;
2924
+ }
2925
+ if (s3 === peg$FAILED) {
2926
+ s3 = peg$currPos;
2927
+ if (input.charCodeAt(peg$currPos) === 46) {
2928
+ s4 = peg$c21;
2929
+ peg$currPos++;
2930
+ }
2931
+ else {
2932
+ s4 = peg$FAILED;
2933
+ if (peg$silentFails === 0) {
2934
+ peg$fail(peg$e23);
2935
+ }
2936
+ }
2937
+ if (s4 !== peg$FAILED) {
2938
+ s5 = peg$currPos;
2939
+ peg$silentFails++;
2940
+ s6 = peg$currPos;
2941
+ s7 = peg$parse_();
2942
+ s8 = peg$parseStrictIdentifier();
2943
+ if (s8 !== peg$FAILED) {
2944
+ s9 = peg$parse_();
2945
+ if (input.charCodeAt(peg$currPos) === 40) {
2946
+ s10 = peg$c22;
2947
+ peg$currPos++;
2948
+ }
2949
+ else {
2950
+ s10 = peg$FAILED;
2951
+ if (peg$silentFails === 0) {
2952
+ peg$fail(peg$e24);
2953
+ }
2954
+ }
2955
+ if (s10 !== peg$FAILED) {
2956
+ s7 = [s7, s8, s9, s10];
2957
+ s6 = s7;
2958
+ }
2959
+ else {
2960
+ peg$currPos = s6;
2961
+ s6 = peg$FAILED;
2962
+ }
2963
+ }
2964
+ else {
2965
+ peg$currPos = s6;
2966
+ s6 = peg$FAILED;
2967
+ }
2968
+ peg$silentFails--;
2969
+ if (s6 === peg$FAILED) {
2970
+ s5 = undefined;
2971
+ }
2972
+ else {
2973
+ peg$currPos = s5;
2974
+ s5 = peg$FAILED;
2975
+ }
2976
+ if (s5 !== peg$FAILED) {
2977
+ s4 = [s4, s5];
2978
+ s3 = s4;
2979
+ }
2980
+ else {
2981
+ peg$currPos = s3;
2982
+ s3 = peg$FAILED;
2983
+ }
2984
+ }
2985
+ else {
2986
+ peg$currPos = s3;
2987
+ s3 = peg$FAILED;
2988
+ }
2989
+ }
2990
+ while (s3 !== peg$FAILED) {
2991
+ s2.push(s3);
2992
+ s3 = [];
2993
+ if (peg$r4.test(input.charAt(peg$currPos))) {
2994
+ s4 = input.charAt(peg$currPos);
2995
+ peg$currPos++;
2996
+ }
2997
+ else {
2998
+ s4 = peg$FAILED;
2999
+ if (peg$silentFails === 0) {
3000
+ peg$fail(peg$e36);
3001
+ }
3002
+ }
3003
+ if (s4 !== peg$FAILED) {
3004
+ while (s4 !== peg$FAILED) {
3005
+ s3.push(s4);
3006
+ if (peg$r4.test(input.charAt(peg$currPos))) {
3007
+ s4 = input.charAt(peg$currPos);
3008
+ peg$currPos++;
3009
+ }
3010
+ else {
3011
+ s4 = peg$FAILED;
3012
+ if (peg$silentFails === 0) {
3013
+ peg$fail(peg$e36);
3014
+ }
3015
+ }
3016
+ }
3017
+ }
3018
+ else {
3019
+ s3 = peg$FAILED;
3020
+ }
3021
+ if (s3 === peg$FAILED) {
3022
+ s3 = peg$currPos;
3023
+ if (input.charCodeAt(peg$currPos) === 46) {
3024
+ s4 = peg$c21;
3025
+ peg$currPos++;
3026
+ }
3027
+ else {
3028
+ s4 = peg$FAILED;
3029
+ if (peg$silentFails === 0) {
3030
+ peg$fail(peg$e23);
3031
+ }
3032
+ }
3033
+ if (s4 !== peg$FAILED) {
3034
+ s5 = peg$currPos;
3035
+ peg$silentFails++;
3036
+ s6 = peg$currPos;
3037
+ s7 = peg$parse_();
3038
+ s8 = peg$parseStrictIdentifier();
3039
+ if (s8 !== peg$FAILED) {
3040
+ s9 = peg$parse_();
3041
+ if (input.charCodeAt(peg$currPos) === 40) {
3042
+ s10 = peg$c22;
3043
+ peg$currPos++;
3044
+ }
3045
+ else {
3046
+ s10 = peg$FAILED;
3047
+ if (peg$silentFails === 0) {
3048
+ peg$fail(peg$e24);
3049
+ }
3050
+ }
3051
+ if (s10 !== peg$FAILED) {
3052
+ s7 = [s7, s8, s9, s10];
3053
+ s6 = s7;
3054
+ }
3055
+ else {
3056
+ peg$currPos = s6;
3057
+ s6 = peg$FAILED;
3058
+ }
3059
+ }
3060
+ else {
3061
+ peg$currPos = s6;
3062
+ s6 = peg$FAILED;
3063
+ }
3064
+ peg$silentFails--;
3065
+ if (s6 === peg$FAILED) {
3066
+ s5 = undefined;
3067
+ }
3068
+ else {
3069
+ peg$currPos = s5;
3070
+ s5 = peg$FAILED;
3071
+ }
3072
+ if (s5 !== peg$FAILED) {
3073
+ s4 = [s4, s5];
3074
+ s3 = s4;
3075
+ }
3076
+ else {
3077
+ peg$currPos = s3;
3078
+ s3 = peg$FAILED;
3079
+ }
3080
+ }
3081
+ else {
3082
+ peg$currPos = s3;
3083
+ s3 = peg$FAILED;
3084
+ }
3085
+ }
3086
+ }
3087
+ peg$savedPos = s0;
3088
+ s0 = peg$f39();
3089
+ }
3090
+ else {
3091
+ peg$currPos = s0;
3092
+ s0 = peg$FAILED;
3093
+ }
3094
+ return s0;
3095
+ }
3096
+ function peg$parseStrictIdentifier() {
3097
+ var s0, s1, s2, s3;
3098
+ s0 = peg$currPos;
3099
+ if (peg$r3.test(input.charAt(peg$currPos))) {
3100
+ s1 = input.charAt(peg$currPos);
3101
+ peg$currPos++;
3102
+ }
3103
+ else {
3104
+ s1 = peg$FAILED;
3105
+ if (peg$silentFails === 0) {
3106
+ peg$fail(peg$e35);
3107
+ }
3108
+ }
3109
+ if (s1 !== peg$FAILED) {
3110
+ s2 = [];
3111
+ if (peg$r4.test(input.charAt(peg$currPos))) {
3112
+ s3 = input.charAt(peg$currPos);
3113
+ peg$currPos++;
3114
+ }
3115
+ else {
3116
+ s3 = peg$FAILED;
3117
+ if (peg$silentFails === 0) {
3118
+ peg$fail(peg$e36);
3119
+ }
3120
+ }
3121
+ while (s3 !== peg$FAILED) {
3122
+ s2.push(s3);
3123
+ if (peg$r4.test(input.charAt(peg$currPos))) {
3124
+ s3 = input.charAt(peg$currPos);
3125
+ peg$currPos++;
3126
+ }
3127
+ else {
3128
+ s3 = peg$FAILED;
3129
+ if (peg$silentFails === 0) {
3130
+ peg$fail(peg$e36);
3131
+ }
3132
+ }
3133
+ }
3134
+ peg$savedPos = s0;
3135
+ s0 = peg$f40();
3136
+ }
3137
+ else {
3138
+ peg$currPos = s0;
3139
+ s0 = peg$FAILED;
3140
+ }
3141
+ return s0;
3142
+ }
3143
+ function peg$parse_() {
3144
+ var s0, s1;
3145
+ peg$silentFails++;
3146
+ s0 = [];
3147
+ if (peg$r5.test(input.charAt(peg$currPos))) {
3148
+ s1 = input.charAt(peg$currPos);
3149
+ peg$currPos++;
3150
+ }
3151
+ else {
3152
+ s1 = peg$FAILED;
3153
+ if (peg$silentFails === 0) {
3154
+ peg$fail(peg$e38);
3155
+ }
3156
+ }
3157
+ while (s1 !== peg$FAILED) {
3158
+ s0.push(s1);
3159
+ if (peg$r5.test(input.charAt(peg$currPos))) {
3160
+ s1 = input.charAt(peg$currPos);
3161
+ peg$currPos++;
3162
+ }
3163
+ else {
3164
+ s1 = peg$FAILED;
3165
+ if (peg$silentFails === 0) {
3166
+ peg$fail(peg$e38);
3167
+ }
3168
+ }
3169
+ }
3170
+ peg$silentFails--;
3171
+ s1 = peg$FAILED;
3172
+ if (peg$silentFails === 0) {
3173
+ peg$fail(peg$e37);
3174
+ }
3175
+ return s0;
3176
+ }
3177
+ peg$result = peg$startRuleFunction();
3178
+ if (peg$result !== peg$FAILED && peg$currPos === input.length) {
3179
+ return peg$result;
3180
+ }
3181
+ else {
3182
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
3183
+ peg$fail(peg$endExpectation());
3184
+ }
3185
+ throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length
3186
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
3187
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
3188
+ }
3189
+ }
3190
+ export { peg$SyntaxError as SyntaxError, peg$parse as parse };
3191
+ //# sourceMappingURL=expressions.js.map