ranger-compiler 2.1.69 → 3.0.3

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 (363) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/README.md +991 -96
  3. package/{compiler/Lang.clj → dist/Lang.rgr} +2345 -75
  4. package/dist/README.md +116 -0
  5. package/dist/{bin/api.d.ts → api.d.ts} +430 -154
  6. package/dist/api.js +34345 -0
  7. package/{lib/Ajax.clj → dist/lib/Ajax.rgr} +1 -1
  8. package/{lib/CmdParams.clj → dist/lib/CmdParams.rgr} +72 -72
  9. package/{lib/Crypto.clj → dist/lib/Crypto.rgr} +1 -1
  10. package/{lib/DOMLib.clj → dist/lib/DOMLib.rgr} +2 -2
  11. package/{lib/Engine3D.clj → dist/lib/Engine3D.rgr} +1 -1
  12. package/{lib/ImmutableVector.clj → dist/lib/ImmutableVector.rgr} +364 -364
  13. package/{lib/IndexedDB.clj → dist/lib/IndexedDB.rgr} +1 -1
  14. package/{lib/JSON.clj → dist/lib/JSON.rgr} +105 -2
  15. package/{lib/JinxProcess.clj → dist/lib/JinxProcess.rgr} +3 -3
  16. package/{lib/Storage.clj → dist/lib/Storage.rgr} +1 -1
  17. package/{lib/Timers.clj → dist/lib/Timers.rgr} +176 -170
  18. package/{lib/ViewLib.clj → dist/lib/ViewLib.rgr} +1 -1
  19. package/dist/lib/lib/ACEEditor.rgr +5 -0
  20. package/dist/lib/lib/Ajax.rgr +196 -0
  21. package/dist/lib/lib/CmdParams.rgr +72 -0
  22. package/dist/lib/lib/Crypto.rgr +90 -0
  23. package/dist/lib/lib/DOMLib.rgr +307 -0
  24. package/{examples/3D/Engine3D.clj → dist/lib/lib/Engine3D.rgr} +870 -857
  25. package/dist/lib/lib/ImmutableVector.rgr +364 -0
  26. package/dist/lib/lib/IndexedDB.rgr +32 -0
  27. package/{compiler/JSON.clj → dist/lib/lib/JSON.rgr} +106 -3
  28. package/dist/lib/lib/JinxProcess.rgr +838 -0
  29. package/dist/lib/lib/SQL.rgr +44 -0
  30. package/dist/lib/lib/ServiceLib.rgr +9 -0
  31. package/dist/lib/lib/Storage.rgr +89 -0
  32. package/dist/lib/lib/Time.rgr +75 -0
  33. package/dist/lib/lib/Timers.rgr +176 -0
  34. package/dist/lib/lib/TypedArrays.rgr +14 -0
  35. package/dist/lib/lib/ViewLib.rgr +851 -0
  36. package/dist/lib/lib/WebLib.rgr +47 -0
  37. package/dist/lib/lib/WebServerLib.rgr +137 -0
  38. package/{lib/ranger-dir.clj → dist/lib/lib/ranger-dir.rgr} +1 -1
  39. package/{compiler/stdlib.clj → dist/lib/lib/stdlib.rgr} +42 -19
  40. package/{lib/stdops.clj → dist/lib/lib/stdops.rgr} +1 -1
  41. package/dist/lib/ranger-dir.rgr +175 -0
  42. package/{lib/stdlib.clj → dist/lib/stdlib.rgr} +2 -2
  43. package/dist/lib/stdops.rgr +168 -0
  44. package/dist/package.json +47 -0
  45. package/{bin/output.js → dist/rgrc.js} +15377 -7935
  46. package/dist/stdops.rgr +168 -0
  47. package/package.json +196 -38
  48. package/adventofcode/day1/bin/LambdaSignature1.java +0 -3
  49. package/adventofcode/day1/bin/LambdaSignature2.java +0 -3
  50. package/adventofcode/day1/bin/LambdaSignature3.java +0 -3
  51. package/adventofcode/day1/bin/day1.cpp +0 -124
  52. package/adventofcode/day1/bin/day1.go +0 -75
  53. package/adventofcode/day1/bin/day1.js +0 -45
  54. package/adventofcode/day1/bin/day1.php +0 -46
  55. package/adventofcode/day1/bin/day1.scala +0 -48
  56. package/adventofcode/day1/bin/day1.swift +0 -48
  57. package/adventofcode/day1/bin/day1_part2.cpp +0 -180
  58. package/adventofcode/day1/bin/day1_part2.go +0 -123
  59. package/adventofcode/day1/bin/day1_part2.js +0 -76
  60. package/adventofcode/day1/bin/day1_part2.php +0 -88
  61. package/adventofcode/day1/bin/day1_part2.scala +0 -81
  62. package/adventofcode/day1/bin/day1_part2.swift +0 -91
  63. package/adventofcode/day1/bin/day_one.java +0 -38
  64. package/adventofcode/day1/bin/day_one_part_two.java +0 -57
  65. package/adventofcode/day1/bin/operatorsOf.java +0 -37
  66. package/adventofcode/day1/bin/operatorsOf_5.java +0 -10
  67. package/adventofcode/day1/bin/operatorsOfboolean_5.java +0 -10
  68. package/adventofcode/day1/bin/variant.hpp +0 -2416
  69. package/adventofcode/day1/compile.bat +0 -7
  70. package/adventofcode/day1/compile2.bat +0 -7
  71. package/adventofcode/day1/day1.clj +0 -19
  72. package/adventofcode/day1/day1_part2.clj +0 -43
  73. package/adventofcode/day1/input1.txt +0 -1
  74. package/adventofcode/day2/bin/LambdaSignature1.class +0 -0
  75. package/adventofcode/day2/bin/LambdaSignature1.java +0 -3
  76. package/adventofcode/day2/bin/LambdaSignature2.class +0 -0
  77. package/adventofcode/day2/bin/LambdaSignature2.java +0 -3
  78. package/adventofcode/day2/bin/day2.cpp +0 -133
  79. package/adventofcode/day2/bin/day2.go +0 -85
  80. package/adventofcode/day2/bin/day2.js +0 -45
  81. package/adventofcode/day2/bin/day2.php +0 -59
  82. package/adventofcode/day2/bin/day2.scala +0 -54
  83. package/adventofcode/day2/bin/day2.swift +0 -62
  84. package/adventofcode/day2/bin/day2_part2.cpp +0 -150
  85. package/adventofcode/day2/bin/day2_part2.go +0 -101
  86. package/adventofcode/day2/bin/day2_part2.js +0 -54
  87. package/adventofcode/day2/bin/day2_part2.php +0 -80
  88. package/adventofcode/day2/bin/day2_part2.scala +0 -68
  89. package/adventofcode/day2/bin/day2_part2.swift +0 -82
  90. package/adventofcode/day2/bin/day_two.java +0 -61
  91. package/adventofcode/day2/bin/day_two_part_two$1$1$1.class +0 -0
  92. package/adventofcode/day2/bin/day_two_part_two$1$1.class +0 -0
  93. package/adventofcode/day2/bin/day_two_part_two$1.class +0 -0
  94. package/adventofcode/day2/bin/day_two_part_two.class +0 -0
  95. package/adventofcode/day2/bin/day_two_part_two.java +0 -80
  96. package/adventofcode/day2/bin/operatorsOf.class +0 -0
  97. package/adventofcode/day2/bin/operatorsOf.java +0 -18
  98. package/adventofcode/day2/bin/variant.hpp +0 -2416
  99. package/adventofcode/day2/compile.bat +0 -7
  100. package/adventofcode/day2/compile2.bat +0 -7
  101. package/adventofcode/day2/day2.clj +0 -60
  102. package/adventofcode/day2/day2_part2.clj +0 -69
  103. package/adventofcode/day2/input1.txt +0 -1
  104. package/adventofcode/day3/bin/Grid.java +0 -92
  105. package/adventofcode/day3/bin/GridRow.java +0 -5
  106. package/adventofcode/day3/bin/LambdaSignature1.java +0 -3
  107. package/adventofcode/day3/bin/LambdaSignature2.java +0 -3
  108. package/adventofcode/day3/bin/LambdaSignature3.java +0 -3
  109. package/adventofcode/day3/bin/day3.cpp +0 -64
  110. package/adventofcode/day3/bin/day3.go +0 -55
  111. package/adventofcode/day3/bin/day3.js +0 -42
  112. package/adventofcode/day3/bin/day3.php +0 -41
  113. package/adventofcode/day3/bin/day3.scala +0 -52
  114. package/adventofcode/day3/bin/day3.swift +0 -43
  115. package/adventofcode/day3/bin/day3_part2.cpp +0 -216
  116. package/adventofcode/day3/bin/day3_part2.go +0 -188
  117. package/adventofcode/day3/bin/day3_part2.js +0 -123
  118. package/adventofcode/day3/bin/day3_part2.php +0 -135
  119. package/adventofcode/day3/bin/day3_part2.swift +0 -131
  120. package/adventofcode/day3/bin/day_three_part_two.java +0 -43
  121. package/adventofcode/day3/bin/day_two.java +0 -42
  122. package/adventofcode/day3/bin/operatorsOf.java +0 -14
  123. package/adventofcode/day3/bin/variant.hpp +0 -2416
  124. package/adventofcode/day3/compile.bat +0 -7
  125. package/adventofcode/day3/compile2.bat +0 -7
  126. package/adventofcode/day3/day3.clj +0 -42
  127. package/adventofcode/day3/day3_part2.clj +0 -112
  128. package/adventofcode/day4/bin/LambdaSignature1.java +0 -3
  129. package/adventofcode/day4/bin/day4.cpp +0 -118
  130. package/adventofcode/day4/bin/day4.go +0 -75
  131. package/adventofcode/day4/bin/day4.js +0 -40
  132. package/adventofcode/day4/bin/day4.php +0 -52
  133. package/adventofcode/day4/bin/day4.scala +0 -47
  134. package/adventofcode/day4/bin/day4.swift +0 -56
  135. package/adventofcode/day4/bin/day4_part2.go +0 -129
  136. package/adventofcode/day4/bin/day4_part2.js +0 -72
  137. package/adventofcode/day4/bin/day_four.java +0 -41
  138. package/adventofcode/day4/bin/inputData.java +0 -7
  139. package/adventofcode/day4/bin/operatorsOf.java +0 -11
  140. package/adventofcode/day4/bin/variant.hpp +0 -2416
  141. package/adventofcode/day4/compile.bat +0 -7
  142. package/adventofcode/day4/compile2.bat +0 -7
  143. package/adventofcode/day4/day4.clj +0 -32
  144. package/adventofcode/day4/day4_part2.clj +0 -44
  145. package/adventofcode/day4/input.clj +0 -519
  146. package/adventofcode/day4/input.txt +0 -512
  147. package/bin/api.ts +0 -24471
  148. package/bin/compiler.ts +0 -24482
  149. package/compiler/ColorConsole.clj +0 -22
  150. package/compiler/ContextOperators.clj +0 -75
  151. package/compiler/FlowEnterVarDef.clj +0 -223
  152. package/compiler/InputFileSystem.clj +0 -276
  153. package/compiler/RangerDocs.clj +0 -7
  154. package/compiler/TFactory.clj +0 -146
  155. package/compiler/TFiles.clj +0 -23
  156. package/compiler/TFlow.clj +0 -39
  157. package/compiler/TNodeFactory.clj +0 -84
  158. package/compiler/TTypes.clj +0 -188
  159. package/compiler/VirtualCompiler.clj +0 -800
  160. package/compiler/bin/ng_Compiler.js +0 -23779
  161. package/compiler/commonmark_plugin.clj +0 -359
  162. package/compiler/feat2.bat +0 -2
  163. package/compiler/feats.bat +0 -9
  164. package/compiler/feature_tests.clj +0 -192
  165. package/compiler/index.js +0 -2
  166. package/compiler/issue_57.clj +0 -25
  167. package/compiler/makefile_plugin.clj +0 -135
  168. package/compiler/markdown_plugin.clj +0 -386
  169. package/compiler/maven_plugin.clj +0 -162
  170. package/compiler/ng_AndroidPageWriter.clj +0 -299
  171. package/compiler/ng_CodeNode.clj +0 -756
  172. package/compiler/ng_CodeNodeCompilerExtensions.clj +0 -839
  173. package/compiler/ng_Compiler.clj +0 -49
  174. package/compiler/ng_CompilerGeneric.clj +0 -260
  175. package/compiler/ng_CompilerOrig.clj +0 -854
  176. package/compiler/ng_DictNode.clj +0 -346
  177. package/compiler/ng_DictNode2.clj +0 -316
  178. package/compiler/ng_Execute.clj +0 -138
  179. package/compiler/ng_Execute1.clj +0 -129
  180. package/compiler/ng_FlowWork.clj +0 -3951
  181. package/compiler/ng_LiveCompiler.clj +0 -1109
  182. package/compiler/ng_RagnerJavaScriptClassWriter.clj +0 -402
  183. package/compiler/ng_RangerActiveOperators.clj +0 -86
  184. package/compiler/ng_RangerAppClassDesc.clj +0 -400
  185. package/compiler/ng_RangerAppEnums.clj +0 -86
  186. package/compiler/ng_RangerAppFunctionDesc.clj +0 -127
  187. package/compiler/ng_RangerAppMessages.clj +0 -15
  188. package/compiler/ng_RangerAppOperatorDesc.clj +0 -20
  189. package/compiler/ng_RangerAppParamDesc.clj +0 -388
  190. package/compiler/ng_RangerAppWriterContext.clj +0 -1793
  191. package/compiler/ng_RangerArgMatch.clj +0 -638
  192. package/compiler/ng_RangerCSharpClassWriter.clj +0 -484
  193. package/compiler/ng_RangerCppClassWriter.clj +0 -1023
  194. package/compiler/ng_RangerDocGenerator.clj +0 -305
  195. package/compiler/ng_RangerFlowParser.clj +0 -4992
  196. package/compiler/ng_RangerFlowParserOrig.clj +0 -4002
  197. package/compiler/ng_RangerGenericClassWriter.clj +0 -573
  198. package/compiler/ng_RangerGolangClassWriter.clj +0 -1766
  199. package/compiler/ng_RangerImmutableExtension.clj +0 -77
  200. package/compiler/ng_RangerJava7ClassWriter.clj +0 -961
  201. package/compiler/ng_RangerJavaScriptClassWriter.clj +0 -1042
  202. package/compiler/ng_RangerKotlinClassWriter.clj +0 -372
  203. package/compiler/ng_RangerLanguageWriters.clj +0 -14
  204. package/compiler/ng_RangerLispParser.clj +0 -873
  205. package/compiler/ng_RangerPHPClassWriter.clj +0 -643
  206. package/compiler/ng_RangerPlugin.clj +0 -41
  207. package/compiler/ng_RangerRangerClassWriter.clj +0 -357
  208. package/compiler/ng_RangerRustClassWriter.clj +0 -420
  209. package/compiler/ng_RangerScalaClassWriter.clj +0 -818
  210. package/compiler/ng_RangerSerializeClass.clj +0 -502
  211. package/compiler/ng_RangerServiceBuilder.clj +0 -63
  212. package/compiler/ng_RangerSwift3ClassWriter.clj +0 -809
  213. package/compiler/ng_RangerSwiftClassWriter.clj +0 -0
  214. package/compiler/ng_RangerTypeClass.clj +0 -45
  215. package/compiler/ng_SourceParser.clj +0 -241
  216. package/compiler/ng_SourceParser2.clj +0 -214
  217. package/compiler/ng_WebPageWriter.clj +0 -39
  218. package/compiler/ng_jsonParser.clj +0 -340
  219. package/compiler/ng_p_test.clj +0 -1711
  220. package/compiler/ng_parser.clj +0 -911
  221. package/compiler/ng_parser2.clj +0 -735
  222. package/compiler/ng_parser2_backup.clj +0 -1679
  223. package/compiler/ng_parser_backup.clj +0 -886
  224. package/compiler/ng_parser_ok.clj +0 -1718
  225. package/compiler/ng_parser_ok2.clj +0 -1717
  226. package/compiler/ng_parser_std_match.clj +0 -687
  227. package/compiler/ng_parser_std_match2.clj +0 -1012
  228. package/compiler/ng_parser_v2.clj +0 -1251
  229. package/compiler/ng_ui.clj +0 -403
  230. package/compiler/ng_ui_test.clj +0 -18
  231. package/compiler/ng_writer.clj +0 -338
  232. package/compiler/ng_xmlParser.clj +0 -472
  233. package/compiler/ng_xmlParser2.clj +0 -317
  234. package/compiler/ng_xmlParser3.clj +0 -251
  235. package/compiler/opdoc.bat +0 -4
  236. package/compiler/operators.md +0 -290
  237. package/compiler/p.bat +0 -4
  238. package/compiler/package.json +0 -10
  239. package/compiler/pcmd.bat +0 -4
  240. package/compiler/pcmd2.bat +0 -3
  241. package/compiler/plaintext_plugin.clj +0 -69
  242. package/compiler/plugin.bat +0 -19
  243. package/compiler/plugin2.bat +0 -4
  244. package/compiler/plugin_app.bat +0 -3
  245. package/compiler/plugin_apps.clj +0 -27
  246. package/compiler/plugins.bat +0 -10
  247. package/compiler/reveal_plugin.clj +0 -409
  248. package/compiler/simplePlugin.clj +0 -780
  249. package/compiler/t.bat +0 -3
  250. package/compiler/test_any.clj +0 -43
  251. package/compiler/test_call.clj +0 -141
  252. package/compiler/test_chain.clj +0 -79
  253. package/compiler/test_json.clj +0 -10
  254. package/compiler/test_lambda.clj +0 -153
  255. package/compiler/test_pcmd.clj +0 -32
  256. package/compiler/test_pcmd2.clj +0 -29
  257. package/compiler/test_plugin.clj +0 -237
  258. package/compiler/test_readfile.clj +0 -13
  259. package/compiler/test_reveal.clj +0 -19
  260. package/compiler/test_slides.clj +0 -312
  261. package/compiler/test_types.clj +0 -143
  262. package/compiler/test_types2.clj +0 -49
  263. package/compiler/test_types3.clj +0 -53
  264. package/compiler/test_var.clj +0 -40
  265. package/compiler/tonpm.bat +0 -14
  266. package/compiler/tonpm2.bat +0 -12
  267. package/compiler/ui_plugin.clj +0 -507
  268. package/compiler/ui_plugin2.clj +0 -427
  269. package/compiler/update-git.bat +0 -3
  270. package/compiler/vcomp.bat +0 -4
  271. package/compiler/viewbuilder_Android.clj +0 -176
  272. package/compiler/viewbuilder_Web.clj +0 -105
  273. package/dist/bin/api.js +0 -32422
  274. package/dist/bin/api.js.map +0 -1
  275. package/dist/bin/compiler.d.ts +0 -1638
  276. package/dist/bin/compiler.js +0 -32444
  277. package/dist/bin/compiler.js.map +0 -1
  278. package/examples/3D/bin/test_3d.js +0 -329
  279. package/examples/3D/test_3d.clj +0 -385
  280. package/examples/EVGColor/EVGColor.clj +0 -310
  281. package/examples/EVGColor/EVGColorContext.clj +0 -176
  282. package/examples/EVGColor/bin/EVGColor.js +0 -286
  283. package/examples/EVGColor/bin/minimized.js +0 -286
  284. package/examples/SVGPath/SVGPath.clj +0 -625
  285. package/examples/SVGPath/Vec2.clj +0 -103
  286. package/examples/SVGPath/bin/SVGPath.cpp +0 -887
  287. package/examples/SVGPath/bin/SVGPath.js +0 -682
  288. package/examples/SVGPath/bin/minimized.js +0 -578
  289. package/examples/SVGPath/bin/variant.hpp +0 -2416
  290. package/examples/minification/Vec2.clj +0 -103
  291. package/examples/minification/bin/minified.js +0 -44
  292. package/examples/minification/bin/test.js +0 -117
  293. package/examples/minification/test.clj +0 -13
  294. package/fiddle/VirtualCompiler.js +0 -23495
  295. package/fiddle/browser_editor.js +0 -13240
  296. package/fiddle/compileEnv.js +0 -1
  297. package/fiddle/compileEnv.json +0 -1
  298. package/fiddle/lang_data.js +0 -1
  299. package/index.html +0 -18
  300. package/native/httpd/HttpTester.clj +0 -33
  301. package/native/httpd/RangerWebService.clj +0 -81
  302. package/operators.md +0 -290
  303. package/tsconfig.json +0 -29
  304. package/versions/cpp/compiler.cpp +0 -15032
  305. package/versions/es6/compiler.js +0 -12860
  306. package/versions/go/compiler.go +0 -21338
  307. package/versions/java/AfterCodeNode.java +0 -4
  308. package/versions/java/ClassJoinPoint.java +0 -6
  309. package/versions/java/CodeFile.java +0 -42
  310. package/versions/java/CodeFileSystem.java +0 -72
  311. package/versions/java/CodeNode.java +0 -807
  312. package/versions/java/CodeSlice.java +0 -13
  313. package/versions/java/CodeWriter.java +0 -185
  314. package/versions/java/ColorConsole.java +0 -8
  315. package/versions/java/CompilerInterface.java +0 -213
  316. package/versions/java/DictNode.java +0 -353
  317. package/versions/java/LiveCompiler.java +0 -772
  318. package/versions/java/NodeEvalState.java +0 -24
  319. package/versions/java/OpFindResult.java +0 -6
  320. package/versions/java/RangerAppArrayValue.java +0 -7
  321. package/versions/java/RangerAppClassDesc.java +0 -217
  322. package/versions/java/RangerAppEnum.java +0 -14
  323. package/versions/java/RangerAppFunctionDesc.java +0 -20
  324. package/versions/java/RangerAppHashValue.java +0 -11
  325. package/versions/java/RangerAppInterfaceImpl.java +0 -6
  326. package/versions/java/RangerAppMethodVariants.java +0 -6
  327. package/versions/java/RangerAppParamDesc.java +0 -321
  328. package/versions/java/RangerAppTodo.java +0 -6
  329. package/versions/java/RangerAppValue.java +0 -10
  330. package/versions/java/RangerAppWriterContext.java +0 -800
  331. package/versions/java/RangerArgMatch.java +0 -317
  332. package/versions/java/RangerBackReference.java +0 -7
  333. package/versions/java/RangerCSharpClassWriter.java +0 -287
  334. package/versions/java/RangerCompilerMessage.java +0 -9
  335. package/versions/java/RangerCppClassWriter.java +0 -725
  336. package/versions/java/RangerFlowParser.java +0 -2142
  337. package/versions/java/RangerGenericClassWriter.java +0 -367
  338. package/versions/java/RangerGolangClassWriter.java +0 -1379
  339. package/versions/java/RangerJava7ClassWriter.java +0 -652
  340. package/versions/java/RangerJavaScriptClassWriter.java +0 -305
  341. package/versions/java/RangerKotlinClassWriter.java +0 -380
  342. package/versions/java/RangerLispParser.java +0 -845
  343. package/versions/java/RangerNodeValue.java +0 -9
  344. package/versions/java/RangerPHPClassWriter.java +0 -527
  345. package/versions/java/RangerParamEventHandler.java +0 -6
  346. package/versions/java/RangerParamEventList.java +0 -5
  347. package/versions/java/RangerParamEventMap.java +0 -27
  348. package/versions/java/RangerRangerClassWriter.java +0 -268
  349. package/versions/java/RangerRefForce.java +0 -7
  350. package/versions/java/RangerScalaClassWriter.java +0 -365
  351. package/versions/java/RangerSerializeClass.java +0 -148
  352. package/versions/java/RangerSwift3ClassWriter.java +0 -548
  353. package/versions/java/RangerTypeClass.java +0 -17
  354. package/versions/java/SourceCode.java +0 -65
  355. package/versions/php/compiler.php +0 -13830
  356. package/versions/swift3/compiler.swift +0 -12542
  357. /package/{lib/ACEEditor.clj → dist/lib/ACEEditor.rgr} +0 -0
  358. /package/{lib/SQL.clj → dist/lib/SQL.rgr} +0 -0
  359. /package/{lib/ServiceLib.clj → dist/lib/ServiceLib.rgr} +0 -0
  360. /package/{lib/Time.clj → dist/lib/Time.rgr} +0 -0
  361. /package/{lib/TypedArrays.clj → dist/lib/TypedArrays.rgr} +0 -0
  362. /package/{lib/WebLib.clj → dist/lib/WebLib.rgr} +0 -0
  363. /package/{lib/WebServerLib.clj → dist/lib/WebServerLib.rgr} +0 -0
@@ -1,735 +0,0 @@
1
- Import "ng_RangerAppEnums.clj"
2
-
3
- class SourceCode {
4
- def code:string ""
5
- def sp:int 0
6
- def ep:int 0
7
- def lines:[string]
8
- def filename:string ""
9
-
10
- Constructor (code_str:string ) {
11
- code = code_str
12
- lines = (strsplit code_str "\n")
13
- }
14
-
15
- fn getLineString:string (line_index:int) {
16
-
17
- if (> (array_length lines) line_index) {
18
- return (itemAt lines line_index)
19
- }
20
- return ""
21
- }
22
-
23
- fn getLine:int (sp:int) {
24
- def cnt:int 0
25
- for lines str:string i {
26
- cnt = (+ cnt (+ (strlen str) 1)))
27
- if (> cnt sp) {
28
- return i
29
- }
30
- }
31
- return -1
32
- }
33
-
34
- }
35
-
36
-
37
- class CodeNode {
38
- def code:SourceCode
39
- def sp:int 0
40
- def ep:int 0
41
- def has_operator:boolean false
42
- def op_index:int 0
43
- def is_system_class:boolean false
44
- def mutable_def:boolean false
45
- def expression:boolean false
46
- def vref:string ""
47
- def is_block_node:boolean false
48
- def infix_operator:boolean false
49
- def infix_node:CodeNode
50
- def infix_subnode:boolean false
51
- def operator_pred:int 0
52
- def to_the_right:boolean false
53
- def right_node:CodeNode
54
- def type_type:string ""
55
- def type_name:string ""
56
- def key_type:string ""
57
- def array_type:string ""
58
- def ns:[string]
59
- def has_vref_annotation:boolean false
60
- def vref_annotation:CodeNode
61
- def has_type_annotation:boolean false
62
- def type_annotation:CodeNode
63
- def value_type:RangerNodeType RangerNodeType.NoType
64
- def eval_type:RangerNodeType RangerNodeType.NoType
65
- def eval_type_name:string ""
66
- def eval_key_type:string ""
67
- def eval_array_type:string ""
68
- def flow_done:boolean false
69
- def ref_change_done:boolean false
70
- def eval_type_node:CodeNode
71
- def ref_type:RangerNodeRefType RangerNodeRefType.NoType
72
- def ref_need_assign:int 0
73
- def double_value:double 0.0
74
- def string_value:string ""
75
- def int_value:int 0
76
- def boolean_value:boolean false
77
- def expression_value:CodeNode
78
- def props:[string:CodeNode]
79
- def prop_keys:[string]
80
- def comments:[CodeNode]
81
- def children:[CodeNode]
82
- def parent@(weak):CodeNode
83
- def didReturnAtIndex:int -1
84
- def hasVarDef:boolean false
85
- def hasClassDescription:boolean false
86
- def hasNewOper:boolean false
87
- def hasFnCall:boolean false
88
- def hasParamDesc:boolean false
89
-
90
-
91
- Constructor (source:SourceCode start:int end:int) {
92
- sp = start
93
- ep = end
94
- code = source
95
- }
96
-
97
- fn getParsedString:string () {
98
- return (substring code.code sp ep)
99
- }
100
-
101
- fn rebuildWithType:CodeNode (match:RangerArgMatch changeVref:boolean) {
102
- def newNode@(lives):CodeNode (new CodeNode ( (unwrap code) sp ep))
103
- newNode.has_operator = has_operator
104
- newNode.op_index = op_index
105
- newNode.mutable_def = mutable_def
106
- newNode.expression = expression
107
- if changeVref {
108
- newNode.vref = (match.getTypeName(vref))
109
- } {
110
- newNode.vref = vref
111
- }
112
- newNode.is_block_node = is_block_node
113
- newNode.type_type = (match.getTypeName(type_type))
114
- newNode.type_name = (match.getTypeName(type_name))
115
- newNode.key_type = (match.getTypeName(key_type))
116
- newNode.array_type = (match.getTypeName(array_type))
117
- newNode.value_type = value_type
118
- if has_vref_annotation {
119
- newNode.has_vref_annotation = true
120
- def ann:CodeNode vref_annotation
121
- newNode.vref_annotation = (ann.rebuildWithType(match true))
122
- }
123
- if has_type_annotation {
124
- newNode.has_type_annotation = true
125
- def t_ann:CodeNode type_annotation
126
- newNode.type_annotation = (t_ann.rebuildWithType(match true))
127
- }
128
- for ns n:string i {
129
- push newNode.ns n
130
- }
131
- switch value_type {
132
- case RangerNodeType.Double {
133
- newNode.double_value = double_value
134
- }
135
- case RangerNodeType.String {
136
- newNode.string_value = string_value
137
- }
138
- case RangerNodeType.Integer {
139
- newNode.int_value = int_value
140
- }
141
- case RangerNodeType.Boolean {
142
- newNode.boolean_value = boolean_value
143
- }
144
- case RangerNodeType.ExpressionType {
145
- if (!null? expression_value) {
146
- newNode.expression_value = (expression_value.rebuildWithType(match changeVref))
147
- }
148
- }
149
- }
150
- for prop_keys key:string i {
151
- push newNode.prop_keys key
152
- def oldp:CodeNode (get props key)
153
- def np:CodeNode (oldp.rebuildWithType(match changeVref))
154
- set newNode.props key np
155
- }
156
- for children ch:CodeNode i {
157
- def newCh:CodeNode (ch.rebuildWithType(match changeVref))
158
- newCh.parent = newNode
159
- push newNode.children newCh
160
- }
161
- return newNode
162
- }
163
- fn buildTypeSignatureUsingMatch:string (match:RangerArgMatch) {
164
- def tName:string (match.getTypeName(type_name))
165
- switch tName {
166
- case "double" {
167
- return "double"
168
- }
169
- case "string" {
170
- return "string"
171
- }
172
- case "integer" {
173
- return "int"
174
- }
175
- case "boolean" {
176
- return "boolean"
177
- }
178
- }
179
- def s:string ""
180
- if (value_type == RangerNodeType.Array) {
181
- s = (s + "[")
182
- s = (s + (match.getTypeName(array_type)))
183
- s = (s + (this.getTypeSignatureWithMatch(match)))
184
- s = (s + "]")
185
- return s
186
- }
187
- if (value_type == RangerNodeType.Hash) {
188
- s = (s + "[")
189
- s = (s + (match.getTypeName(key_type)))
190
- s = (s + ":")
191
- s = (s + (match.getTypeName(array_type)))
192
- s = (s + (this.getTypeSignatureWithMatch(match)))
193
- s = (s + "]")
194
- return s
195
- }
196
- s = (match.getTypeName(type_name))
197
- s = (s + (this.getVRefSignatureWithMatch(match)))
198
- return s
199
- }
200
- fn buildTypeSignature:string () {
201
- switch value_type {
202
- case RangerNodeType.Double {
203
- return "double"
204
- }
205
- case RangerNodeType.String {
206
- return "string"
207
- }
208
- case RangerNodeType.Integer {
209
- return "int"
210
- }
211
- case RangerNodeType.Boolean {
212
- return "boolean"
213
- }
214
- case RangerNodeType.Char {
215
- return "char"
216
- }
217
- case RangerNodeType.CharBuffer {
218
- return "charbuffer"
219
- }
220
- }
221
- def s:string ""
222
- if (value_type == RangerNodeType.Array) {
223
- s = (s + "[")
224
- s = (s + array_type)
225
- s = (s + (this.getTypeSignature()))
226
- s = (s + "]")
227
- return s
228
- }
229
- if (value_type == RangerNodeType.Hash) {
230
- s = (s + "[")
231
- s = (s + key_type)
232
- s = (s + ":")
233
- s = (s + array_type)
234
- s = (s + (this.getTypeSignature()))
235
- s = (s + "]")
236
- return s
237
- }
238
- s = type_name
239
- s = (s + (this.getVRefSignature()))
240
- return s
241
- }
242
-
243
- fn getVRefSignatureWithMatch:string (match:RangerArgMatch) {
244
- if has_vref_annotation {
245
- def nn:CodeNode (vref_annotation.rebuildWithType(match true))
246
- return ("@" + (nn.getCode()))
247
- }
248
- return ""
249
- }
250
- fn getVRefSignature:string () {
251
- if has_vref_annotation {
252
- return ("@" + (vref_annotation.getCode()))
253
- }
254
- return ""
255
- }
256
- fn getTypeSignatureWithMatch:string (match:RangerArgMatch) {
257
- if has_type_annotation {
258
- def nn:CodeNode (type_annotation.rebuildWithType(match true))
259
- return ("@" + (nn.getCode()))
260
- }
261
- return ""
262
- }
263
- fn getTypeSignature:string () {
264
- if has_type_annotation {
265
- return ("@" + (type_annotation.getCode()))
266
- }
267
- return ""
268
- }
269
- fn getFilename:string () {
270
- return code.filename
271
- }
272
- fn getFlag@(optional weak):CodeNode (flagName:string) {
273
-
274
- def res:CodeNode
275
- if (false == has_vref_annotation) {
276
- return res
277
- }
278
- for vref_annotation.children ch:CodeNode i {
279
- if (ch.vref == flagName) {
280
- res = ch
281
- return res
282
- }
283
- }
284
- return res
285
- }
286
- fn hasFlag:boolean (flagName:string) {
287
- if (false == has_vref_annotation) {
288
- return false
289
- }
290
- for vref_annotation.children ch:CodeNode i {
291
- if (ch.vref == flagName) {
292
- return true
293
- }
294
- }
295
- return false
296
- }
297
- fn setFlag:void (flagName:string) {
298
- if (false == has_vref_annotation) {
299
- vref_annotation = (new CodeNode ((unwrap code) sp ep))
300
- }
301
- if (this.hasFlag(flagName)) {
302
- return
303
- }
304
- def flag:CodeNode (new CodeNode ((unwrap code) sp ep))
305
- flag.vref = flagName
306
- flag.value_type = RangerNodeType.VRef
307
- push vref_annotation.children flag
308
- has_vref_annotation = true
309
- }
310
- fn getTypeInformationString:string () {
311
- def s:string ""
312
- if ((strlen vref) > 0) {
313
- s = (s + "<vref:" + vref + ">")
314
- } {
315
- s = (s + "<no.vref>")
316
- }
317
- if ((strlen type_name) > 0) {
318
- s = (s + "<type_name:" + type_name + ">")
319
- } {
320
- s = (s + "<no.type_name>")
321
- }
322
- if ((strlen array_type) > 0) {
323
- s = (s + "<array_type:" + array_type + ">")
324
- } {
325
- s = (s + "<no.array_type>")
326
- }
327
- if ((strlen key_type) > 0) {
328
- s = (s + "<key_type:" + key_type + ">")
329
- } {
330
- s = (s + "<no.key_type>")
331
- }
332
- switch value_type {
333
- case RangerNodeType.Boolean {
334
- s = (s + "<value_type=Boolean>")
335
- }
336
- case RangerNodeType.String {
337
- s = (s + "<value_type=String>")
338
- }
339
- }
340
- return s
341
- }
342
- fn getLine:int () {
343
- return (code.getLine(sp))
344
- }
345
- fn getLineString:string (line_index:int) {
346
- return (code.getLineString(line_index))
347
- }
348
- fn getLineAsString:string () {
349
- def idx:int (this.getLine())
350
- def line_name_idx:int (idx + 1)
351
- return ((this.getFilename()) + ", line " + line_name_idx + " : " + (code.getLineString(idx)))
352
- }
353
- fn getPositionalString:string () {
354
- if ((ep > sp) && ((ep - sp) < 50)) {
355
- def start:int sp
356
- def end:int ep
357
- start = (start - 100)
358
- end = (end + 50)
359
- if (start < 0) {
360
- start = 0
361
- }
362
- if (end >= (strlen code.code)) {
363
- end = ((strlen code.code) - 1)
364
- }
365
- return (substring code.code start end)
366
- }
367
- return ""
368
- }
369
- fn copyEvalResFrom:void (node:CodeNode) {
370
- if node.hasParamDesc {
371
- hasParamDesc = node.hasParamDesc
372
- paramDesc = node.paramDesc
373
- }
374
- if (!null? node.typeClass) {
375
- typeClass = node.typeClass
376
- }
377
- eval_type = node.eval_type
378
- eval_type_name = node.eval_type_name
379
- if (node.hasFlag("optional")) {
380
- this.setFlag("optional")
381
- }
382
- if (node.value_type == RangerNodeType.Hash) {
383
- eval_key_type = node.eval_key_type
384
- eval_array_type = node.eval_array_type
385
- eval_type = RangerNodeType.Hash
386
- }
387
- if (node.value_type == RangerNodeType.Array) {
388
- eval_key_type = node.eval_key_type
389
- eval_array_type = node.eval_array_type
390
- eval_type = RangerNodeType.Array
391
- }
392
- }
393
- fn defineNodeTypeTo:void (node:CodeNode ctx:RangerAppWriterContext) {
394
- switch type_name {
395
- case "double" {
396
- node.value_type = RangerNodeType.Double
397
- node.eval_type = RangerNodeType.Double
398
- node.eval_type_name = "double"
399
- }
400
- case "int" {
401
- node.value_type = RangerNodeType.Integer
402
- node.eval_type = RangerNodeType.Integer
403
- node.eval_type_name = "int"
404
- }
405
- case "char" {
406
- node.value_type = RangerNodeType.Char
407
- node.eval_type = RangerNodeType.Char
408
- node.eval_type_name = "char"
409
- }
410
- case "charbuffer" {
411
- node.value_type = RangerNodeType.CharBuffer
412
- node.eval_type = RangerNodeType.CharBuffer
413
- node.eval_type_name = "charbuffer"
414
- }
415
- case "string" {
416
- node.value_type = RangerNodeType.String
417
- node.eval_type = RangerNodeType.String
418
- node.eval_type_name = "string"
419
- }
420
- case "boolean" {
421
- node.value_type = RangerNodeType.Boolean
422
- node.eval_type = RangerNodeType.Boolean
423
- node.eval_type_name = "string"
424
- }
425
-
426
- default {
427
- if (true == expression) {
428
- node.value_type = RangerNodeType.ExpressionType
429
- node.eval_type = RangerNodeType.ExpressionType
430
- node.expression = true
431
- }
432
- if (value_type == RangerNodeType.Array) {
433
- node.value_type = RangerNodeType.Array
434
- node.eval_type = RangerNodeType.Array
435
- node.eval_type_name = type_name
436
- node.eval_array_type = array_type
437
- }
438
- if (value_type == RangerNodeType.Hash) {
439
- node.value_type = RangerNodeType.Hash
440
- node.eval_type = RangerNodeType.Hash
441
- node.eval_type_name = type_name
442
- node.eval_array_type = array_type
443
- node.key_type = key_type
444
- }
445
- if (value_type == RangerNodeType.Enum) {
446
- node.value_type = RangerNodeType.Enum
447
- node.eval_type = RangerNodeType.Enum
448
- node.eval_type_name = type_name
449
- }
450
- if (value_type == RangerNodeType.VRef) {
451
- if (ctx.isEnumDefined(type_name)) {
452
- node.value_type = RangerNodeType.Enum
453
- node.eval_type = RangerNodeType.Enum
454
- node.eval_type_name = type_name
455
- }
456
- if (ctx.isDefinedClass(type_name)) {
457
- node.value_type = RangerNodeType.Object
458
- node.eval_type = RangerNodeType.Object
459
- node.eval_type_name = type_name
460
- }
461
- }
462
- }
463
- }
464
- }
465
- fn typeNameAsType:RangerNodeType (ctx:RangerAppWriterContext) {
466
- switch type_name {
467
- case "double" {
468
- return RangerNodeType.Double
469
- }
470
- case "int" {
471
- return RangerNodeType.Integer
472
- }
473
- case "string" {
474
- return RangerNodeType.String
475
- }
476
- case "boolean" {
477
- return RangerNodeType.Boolean
478
- }
479
- case "char" {
480
- return RangerNodeType.Char
481
- }
482
- case "charbuffer" {
483
- return RangerNodeType.CharBuffer
484
- }
485
-
486
- default {
487
- if (== true expression) {
488
- (return RangerNodeType.ExpressionType)
489
- }
490
-
491
- if (== value_type RangerNodeType.VRef) {
492
- if(ctx.isEnumDefined(type_name)) {
493
- return RangerNodeType.Enum
494
- }
495
- if(ctx.isDefinedClass(type_name)) {
496
- return RangerNodeType.Object
497
- }
498
- }
499
- }
500
- }
501
- return value_type
502
- }
503
- fn isPrimitive:boolean () {
504
- if ((value_type == RangerNodeType.Double) || (value_type == RangerNodeType.String) || (value_type == RangerNodeType.Integer) || (value_type == RangerNodeType.Char) || (value_type == RangerNodeType.CharBuffer) || (value_type == RangerNodeType.Boolean)) {
505
- return true
506
- }
507
- return false
508
- }
509
- fn isPrimitiveType:boolean () {
510
- def tn:string type_name
511
- if ((tn == "double") || (tn == "string") || (tn == "int") || (tn == "char") || (tn == "charbuffer") || (tn == "boolean")) {
512
- return true
513
- }
514
- return false
515
- }
516
- fn isAPrimitiveType:boolean () {
517
- def tn:string type_name
518
- if ((value_type == RangerNodeType.Array) || (value_type == RangerNodeType.Hash)) {
519
- tn = array_type
520
- }
521
- if ((tn == "double") || (tn == "string") || (tn == "int") || (tn == "char") || (tn == "charbuffer") || (tn == "boolean")) {
522
- return true
523
- }
524
- return false
525
- }
526
- fn getFirst:CodeNode () {
527
- return (itemAt children 0)
528
- }
529
- fn getSecond:CodeNode () {
530
- return (itemAt children 1)
531
- }
532
- fn getThird:CodeNode () {
533
- return (itemAt children 2)
534
- }
535
- fn isSecondExpr:boolean () {
536
- if ((array_length children) > 1) {
537
- def second:CodeNode (itemAt children 1)
538
- if second.expression {
539
- return true
540
- }
541
- }
542
- return false
543
- }
544
- fn getOperator:string () {
545
- def s:string ""
546
- if ((array_length children) > 0) {
547
- def fc:CodeNode (itemAt children 0)
548
- if (fc.value_type == RangerNodeType.VRef) {
549
- return fc.vref
550
- }
551
- }
552
- return s
553
- }
554
- fn getVRefAt:string (idx:int) {
555
- def s:string ""
556
- if ((array_length children) > idx) {
557
- def fc:CodeNode (itemAt children idx)
558
- return fc.vref
559
- }
560
- return s
561
- }
562
- fn getStringAt:string (idx:int) {
563
- def s:string ""
564
- if ((array_length children) > idx) {
565
- def fc:CodeNode (itemAt children idx)
566
- if (fc.value_type == RangerNodeType.String) {
567
- return fc.string_value
568
- }
569
- }
570
- return s
571
- }
572
- fn hasExpressionProperty:boolean (name:string) {
573
- def ann:CodeNode (get props name)
574
- if (!null? ann) {
575
- return ann.expression
576
- }
577
- return false
578
- }
579
- fn getExpressionProperty@(weak optional):CodeNode (name:string) {
580
- def ann:CodeNode (get props name)
581
- if (!null? ann) {
582
- return ann
583
- }
584
- return ann
585
- }
586
- fn hasIntProperty:boolean (name:string) {
587
- def ann:CodeNode (get props name)
588
- if (!null? ann) {
589
- def fc:CodeNode (itemAt ann.children 0)
590
- if (fc.value_type == RangerNodeType.Integer) {
591
- return true
592
- }
593
- }
594
- return false
595
- }
596
- fn getIntProperty:int (name:string) {
597
- def ann:CodeNode (get props name)
598
- if (!null? ann) {
599
- def fc:CodeNode (itemAt ann.children 0)
600
- if (fc.value_type == RangerNodeType.Integer) {
601
- return fc.int_value
602
- }
603
- }
604
- return 0
605
- }
606
- fn hasDoubleProperty:boolean (name:string) {
607
- def ann:CodeNode (get props name)
608
- if (!null? ann) {
609
- if (ann.value_type == RangerNodeType.Double) {
610
- return true
611
- }
612
- }
613
- return false
614
- }
615
- fn getDoubleProperty:double (name:string) {
616
- def ann:CodeNode (get props name)
617
- if (!null? ann) {
618
- if (ann.value_type == RangerNodeType.Double) {
619
- return ann.double_value
620
- }
621
- }
622
- return 0.0
623
- }
624
- fn hasStringProperty:boolean (name:string) {
625
- if( false == (has props name) ) {
626
- return false
627
- }
628
- def ann:CodeNode (get props name)
629
- if (!null? ann) {
630
- if (ann.value_type == RangerNodeType.String) {
631
- return true
632
- }
633
- }
634
- return false
635
- }
636
- fn getStringProperty:string (name:string) {
637
- def ann:CodeNode (get props name)
638
- if (!null? ann) {
639
- if (ann.value_type == RangerNodeType.String) {
640
- return ann.string_value
641
- }
642
- }
643
- return ""
644
- }
645
- fn hasBooleanProperty:boolean (name:string) {
646
- def ann:CodeNode (get props name)
647
- if (!null? ann) {
648
- if (ann.value_type == RangerNodeType.Boolean) {
649
- return true
650
- }
651
- }
652
- return false
653
- }
654
- fn getBooleanProperty:boolean (name:string) {
655
- def ann:CodeNode (get props name)
656
- if (!null? ann) {
657
- if (ann.value_type == RangerNodeType.Boolean) {
658
- return ann.boolean_value
659
- }
660
- }
661
- return false
662
- }
663
- fn isFirstTypeVref:boolean (vrefName:string) {
664
- if ((array_length children) > 0) {
665
- def fc:CodeNode (itemAt children 0)
666
- if (fc.value_type == RangerNodeType.VRef) {
667
- return true
668
- }
669
- }
670
- return false
671
- }
672
- fn isFirstVref:boolean (vrefName:string) {
673
- if ((array_length children) > 0) {
674
- def fc:CodeNode (itemAt children 0)
675
- if (fc.vref == vrefName) {
676
- return true
677
- }
678
- }
679
- return false
680
- }
681
- fn getString:string () {
682
- return (substring code.code sp ep)
683
- }
684
- fn writeCode:void (wr:CodeWriter) {
685
- switch value_type {
686
- case RangerNodeType.Double {
687
- wr.out((double2str double_value) false)
688
- }
689
- case RangerNodeType.String {
690
- wr.out(((strfromcode 34) + string_value + (strfromcode 34)) false)
691
- }
692
- case RangerNodeType.Integer {
693
- wr.out( "" + int_value , false)
694
- }
695
- case RangerNodeType.Boolean {
696
- if(boolean_value) {
697
- wr.out("true" false)
698
- } {
699
- wr.out("false" false)
700
- }
701
- }
702
- }
703
- }
704
- fn getCode:string () {
705
- def wr:CodeWriter (new CodeWriter ())
706
- this.writeCode(wr)
707
- return (wr.getCode())
708
- }
709
- fn walk:void () {
710
- switch value_type {
711
- case RangerNodeType.Double {
712
- print ("Double : " + double_value)
713
- }
714
- case RangerNodeType.String {
715
- print ("String : " + string_value)
716
- }
717
- }
718
- if expression {
719
- print "("
720
- } {
721
- print (substring code.code sp ep)
722
- }
723
- for children item:CodeNode i {
724
- item.walk()
725
- }
726
- if expression {
727
- print ")"
728
- }
729
- }
730
- }
731
-
732
-
733
- class AfterCodeNode {
734
- def ff:int 0
735
- }