ranger-compiler 2.1.70 → 3.0.4

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 +114 -0
  2. package/README.md +956 -133
  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/{compiler/bin/output.js → dist/rgrc.js} +15377 -7936
  46. package/dist/stdops.rgr +168 -0
  47. package/package.json +196 -39
  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/bin/output.js +0 -23819
  150. package/compiler/ColorConsole.clj +0 -22
  151. package/compiler/ContextOperators.clj +0 -75
  152. package/compiler/FlowEnterVarDef.clj +0 -223
  153. package/compiler/InputFileSystem.clj +0 -276
  154. package/compiler/RangerDocs.clj +0 -7
  155. package/compiler/TFactory.clj +0 -146
  156. package/compiler/TFiles.clj +0 -23
  157. package/compiler/TFlow.clj +0 -39
  158. package/compiler/TNodeFactory.clj +0 -84
  159. package/compiler/TTypes.clj +0 -188
  160. package/compiler/VirtualCompiler.clj +0 -807
  161. package/compiler/bin/ng_Compiler.js +0 -23779
  162. package/compiler/commonmark_plugin.clj +0 -359
  163. package/compiler/feat2.bat +0 -2
  164. package/compiler/feats.bat +0 -9
  165. package/compiler/feature_tests.clj +0 -192
  166. package/compiler/index.js +0 -2
  167. package/compiler/issue_57.clj +0 -25
  168. package/compiler/makefile_plugin.clj +0 -135
  169. package/compiler/markdown_plugin.clj +0 -386
  170. package/compiler/maven_plugin.clj +0 -162
  171. package/compiler/ng_AndroidPageWriter.clj +0 -299
  172. package/compiler/ng_CodeNode.clj +0 -756
  173. package/compiler/ng_CodeNodeCompilerExtensions.clj +0 -839
  174. package/compiler/ng_Compiler.clj +0 -49
  175. package/compiler/ng_CompilerGeneric.clj +0 -260
  176. package/compiler/ng_CompilerOrig.clj +0 -854
  177. package/compiler/ng_DictNode.clj +0 -346
  178. package/compiler/ng_DictNode2.clj +0 -316
  179. package/compiler/ng_Execute.clj +0 -138
  180. package/compiler/ng_Execute1.clj +0 -129
  181. package/compiler/ng_FlowWork.clj +0 -3951
  182. package/compiler/ng_LiveCompiler.clj +0 -1109
  183. package/compiler/ng_RagnerJavaScriptClassWriter.clj +0 -402
  184. package/compiler/ng_RangerActiveOperators.clj +0 -86
  185. package/compiler/ng_RangerAppClassDesc.clj +0 -400
  186. package/compiler/ng_RangerAppEnums.clj +0 -86
  187. package/compiler/ng_RangerAppFunctionDesc.clj +0 -127
  188. package/compiler/ng_RangerAppMessages.clj +0 -15
  189. package/compiler/ng_RangerAppOperatorDesc.clj +0 -20
  190. package/compiler/ng_RangerAppParamDesc.clj +0 -388
  191. package/compiler/ng_RangerAppWriterContext.clj +0 -1793
  192. package/compiler/ng_RangerArgMatch.clj +0 -638
  193. package/compiler/ng_RangerCSharpClassWriter.clj +0 -484
  194. package/compiler/ng_RangerCppClassWriter.clj +0 -1023
  195. package/compiler/ng_RangerDocGenerator.clj +0 -305
  196. package/compiler/ng_RangerFlowParser.clj +0 -4992
  197. package/compiler/ng_RangerFlowParserOrig.clj +0 -4002
  198. package/compiler/ng_RangerGenericClassWriter.clj +0 -573
  199. package/compiler/ng_RangerGolangClassWriter.clj +0 -1766
  200. package/compiler/ng_RangerImmutableExtension.clj +0 -77
  201. package/compiler/ng_RangerJava7ClassWriter.clj +0 -961
  202. package/compiler/ng_RangerJavaScriptClassWriter.clj +0 -1040
  203. package/compiler/ng_RangerKotlinClassWriter.clj +0 -372
  204. package/compiler/ng_RangerLanguageWriters.clj +0 -14
  205. package/compiler/ng_RangerLispParser.clj +0 -873
  206. package/compiler/ng_RangerPHPClassWriter.clj +0 -643
  207. package/compiler/ng_RangerPlugin.clj +0 -41
  208. package/compiler/ng_RangerRangerClassWriter.clj +0 -357
  209. package/compiler/ng_RangerRustClassWriter.clj +0 -420
  210. package/compiler/ng_RangerScalaClassWriter.clj +0 -818
  211. package/compiler/ng_RangerSerializeClass.clj +0 -502
  212. package/compiler/ng_RangerServiceBuilder.clj +0 -63
  213. package/compiler/ng_RangerSwift3ClassWriter.clj +0 -809
  214. package/compiler/ng_RangerSwiftClassWriter.clj +0 -0
  215. package/compiler/ng_RangerTypeClass.clj +0 -45
  216. package/compiler/ng_SourceParser.clj +0 -241
  217. package/compiler/ng_SourceParser2.clj +0 -214
  218. package/compiler/ng_WebPageWriter.clj +0 -39
  219. package/compiler/ng_jsonParser.clj +0 -340
  220. package/compiler/ng_p_test.clj +0 -1711
  221. package/compiler/ng_parser.clj +0 -911
  222. package/compiler/ng_parser2.clj +0 -735
  223. package/compiler/ng_parser2_backup.clj +0 -1679
  224. package/compiler/ng_parser_backup.clj +0 -886
  225. package/compiler/ng_parser_ok.clj +0 -1718
  226. package/compiler/ng_parser_ok2.clj +0 -1717
  227. package/compiler/ng_parser_std_match.clj +0 -687
  228. package/compiler/ng_parser_std_match2.clj +0 -1012
  229. package/compiler/ng_parser_v2.clj +0 -1251
  230. package/compiler/ng_ui.clj +0 -403
  231. package/compiler/ng_ui_test.clj +0 -18
  232. package/compiler/ng_writer.clj +0 -338
  233. package/compiler/ng_xmlParser.clj +0 -472
  234. package/compiler/ng_xmlParser2.clj +0 -317
  235. package/compiler/ng_xmlParser3.clj +0 -251
  236. package/compiler/opdoc.bat +0 -4
  237. package/compiler/operators.md +0 -290
  238. package/compiler/p.bat +0 -4
  239. package/compiler/package.json +0 -10
  240. package/compiler/pcmd.bat +0 -4
  241. package/compiler/pcmd2.bat +0 -3
  242. package/compiler/plaintext_plugin.clj +0 -69
  243. package/compiler/plugin.bat +0 -19
  244. package/compiler/plugin2.bat +0 -4
  245. package/compiler/plugin_app.bat +0 -3
  246. package/compiler/plugin_apps.clj +0 -27
  247. package/compiler/plugins.bat +0 -10
  248. package/compiler/reveal_plugin.clj +0 -409
  249. package/compiler/simplePlugin.clj +0 -780
  250. package/compiler/t.bat +0 -3
  251. package/compiler/test_any.clj +0 -43
  252. package/compiler/test_call.clj +0 -141
  253. package/compiler/test_chain.clj +0 -79
  254. package/compiler/test_json.clj +0 -10
  255. package/compiler/test_lambda.clj +0 -153
  256. package/compiler/test_pcmd.clj +0 -32
  257. package/compiler/test_pcmd2.clj +0 -29
  258. package/compiler/test_plugin.clj +0 -237
  259. package/compiler/test_readfile.clj +0 -13
  260. package/compiler/test_reveal.clj +0 -19
  261. package/compiler/test_slides.clj +0 -312
  262. package/compiler/test_types.clj +0 -143
  263. package/compiler/test_types2.clj +0 -49
  264. package/compiler/test_types3.clj +0 -53
  265. package/compiler/test_var.clj +0 -40
  266. package/compiler/tonpm.bat +0 -14
  267. package/compiler/tonpm2.bat +0 -12
  268. package/compiler/ui_plugin.clj +0 -507
  269. package/compiler/ui_plugin2.clj +0 -427
  270. package/compiler/update-git.bat +0 -3
  271. package/compiler/vcomp.bat +0 -4
  272. package/compiler/viewbuilder_Android.clj +0 -176
  273. package/compiler/viewbuilder_Web.clj +0 -105
  274. package/dist/bin/api.js +0 -32422
  275. package/dist/bin/compiler.d.ts +0 -1638
  276. package/dist/bin/compiler.js +0 -32444
  277. package/examples/3D/bin/test_3d.js +0 -329
  278. package/examples/3D/test_3d.clj +0 -385
  279. package/examples/EVGColor/EVGColor.clj +0 -310
  280. package/examples/EVGColor/EVGColorContext.clj +0 -176
  281. package/examples/EVGColor/bin/EVGColor.js +0 -286
  282. package/examples/EVGColor/bin/minimized.js +0 -286
  283. package/examples/SVGPath/SVGPath.clj +0 -625
  284. package/examples/SVGPath/Vec2.clj +0 -103
  285. package/examples/SVGPath/bin/SVGPath.cpp +0 -887
  286. package/examples/SVGPath/bin/SVGPath.js +0 -682
  287. package/examples/SVGPath/bin/SVGPath.ts +0 -711
  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,400 +0,0 @@
1
-
2
- class RangerAppMethodVariants {
3
- def name:string ""
4
- def variants@(weak):[RangerAppFunctionDesc]
5
- }
6
- class RangerAppInterfaceImpl {
7
- def name:string ""
8
- def typeParams:CodeNode
9
- }
10
- class RangerTraitParams {
11
- def param_names:[string]
12
- def values:[string:string]
13
- }
14
- class RangerAppClassDesc {
15
- Extends (RangerAppParamDesc)
16
- def name:string ""
17
- def is_system:boolean false
18
- def compiledName:string ""
19
- def systemNames:[string:string]
20
- def systemNodes@(weak):[string:CodeNode]
21
- def systemInfo:CodeNode
22
-
23
- ; --- following could be compined into a enum -type
24
- def is_interface:boolean false
25
- def is_system_union:boolean false
26
- def is_template:boolean false
27
- def is_serialized:boolean false
28
- def is_trait:boolean false
29
- def is_operator_class false
30
- def is_generic_instance false
31
- def is_union false
32
-
33
- def is_used_by_main false
34
- def is_not_used false
35
-
36
- def generic_params:CodeNode
37
- def ctx@(weak):RangerAppWriterContext
38
- def variables:[RangerAppParamDesc]
39
- def capturedLocals@(weak):[RangerAppParamDesc]
40
- def methods:[RangerAppFunctionDesc]
41
- def defined_methods:[string:boolean]
42
- def static_methods:[RangerAppFunctionDesc]
43
- def defined_static_methods:[string:boolean]
44
- def defined_variants:[string]
45
- def method_variants:[string:RangerAppMethodVariants]
46
- def has_constructor:boolean false
47
- def constructor_node@(weak):CodeNode
48
- def constructor_fn:RangerAppFunctionDesc
49
- def has_destructor:boolean false
50
- def destructor_node:CodeNode
51
- def destructor_fn:RangerAppFunctionDesc
52
- def extends_classes:[string]
53
- def implements_interfaces:[string]
54
- def consumes_traits:[string]
55
- def trait_params:[string:RangerTraitParams]
56
- def is_union_of:[string]
57
- def nameNode@(weak):CodeNode
58
- def classNode@(weak):CodeNode
59
- def contr_writers:[CodeWriter]
60
- def is_inherited:boolean false
61
-
62
- fn isClass:boolean () {
63
- return true
64
- }
65
- fn isProperty:boolean () {
66
- return false
67
- }
68
- fn doesInherit:boolean () {
69
- return is_inherited
70
- }
71
- fn isNormalClass:boolean () {
72
- def special ( is_operator_class || is_trait || is_system || is_generic_instance || is_system_union || is_union )
73
- return (special == false)
74
- }
75
- fn hasTrait@(optional weak):RangerAppClassDesc (class_name:string ctx@(weak):RangerAppWriterContext) {
76
- def res@(optional):RangerAppClassDesc
77
- for consumes_traits c_name:string i {
78
- def c:RangerAppClassDesc (ctx.findClass(c_name))
79
- if( c_name == class_name) {
80
- res = c
81
- return res
82
- }
83
- }
84
- return res
85
- }
86
-
87
- doc isSameOrParentClass "
88
- Tests if the `class name` is either
89
- - same class than the tested class
90
- - belongs to the same union
91
- - is either parent or child class of this class
92
- - implements same trait (interface) than this class
93
- "
94
- fn isSameOrParentClass:boolean (class_name:string ctx@(weak):RangerAppWriterContext) {
95
-
96
- if(ctx.isPrimitiveType(class_name)) {
97
- if ((indexOf is_union_of class_name) >= 0) {
98
- return true
99
- }
100
- return false
101
- }
102
-
103
- if (class_name == name) {
104
- return true
105
- }
106
- if ((indexOf extends_classes class_name) >= 0) {
107
- return true
108
- }
109
- if ((indexOf consumes_traits class_name) >= 0) {
110
- return true
111
- }
112
- if ((indexOf implements_interfaces class_name) >= 0) {
113
- return true
114
- }
115
- if ((indexOf is_union_of class_name) >= 0) {
116
- return true
117
- }
118
- for extends_classes c_name:string i {
119
- def c:RangerAppClassDesc (ctx.findClass(c_name))
120
- if (c.isSameOrParentClass(class_name ctx)) {
121
- return true
122
- }
123
- }
124
- for consumes_traits c_name:string i {
125
- def c:RangerAppClassDesc (ctx.findClass(c_name))
126
- if (c.isSameOrParentClass(class_name ctx)) {
127
- return true
128
- }
129
- }
130
- for implements_interfaces i_name:string i {
131
- def c:RangerAppClassDesc (ctx.findClass(i_name))
132
- if (c.isSameOrParentClass(class_name ctx)) {
133
- return true
134
- }
135
- }
136
- for is_union_of i_name:string i {
137
- ;def c:RangerAppClassDesc (ctx.findClass(i_name))
138
- ;if (c.isSameOrParentClass(class_name ctx)) {
139
- ; return true
140
- ;}
141
- if (ctx.isDefinedClass(i_name)) {
142
- def c:RangerAppClassDesc (ctx.findClass(i_name))
143
- if (c.isSameOrParentClass(class_name ctx)) {
144
- return true
145
- }
146
- } {
147
- ; print "did not find union class " + i_name
148
- }
149
- }
150
- return false
151
- }
152
- fn hasOwnMethod:boolean (m_name:string) {
153
- if (has defined_methods m_name) {
154
- return true
155
- }
156
- return false
157
- }
158
- fn hasMethod:boolean (m_name:string) {
159
- if (has defined_methods m_name) {
160
- return true
161
- }
162
- for extends_classes cname:string i {
163
- def cDesc:RangerAppClassDesc (ctx.findClass(cname))
164
- if (cDesc.hasMethod(m_name)) {
165
- return (cDesc.hasMethod(m_name))
166
- }
167
- }
168
- return false
169
- }
170
- fn findMethod@(optional weak):RangerAppFunctionDesc (f_name:string) {
171
- def res@(weak lives):RangerAppFunctionDesc
172
- def vNames (keys method_variants)
173
- for vNames mname:string i {
174
- if(mname == f_name) {
175
- def list (unwrap (get method_variants mname))
176
- res = (itemAt list.variants 0)
177
- return res
178
- }
179
- }
180
- for extends_classes cname:string i {
181
- def cDesc:RangerAppClassDesc (ctx.findClass(cname))
182
- if (cDesc.hasMethod(f_name)) {
183
- return (cDesc.findMethod(f_name))
184
- }
185
- }
186
- return res
187
- }
188
- fn hasStaticMethod:boolean (m_name:string) {
189
- return (has defined_static_methods m_name)
190
- }
191
- fn findStaticMethod@(weak optional):RangerAppFunctionDesc (f_name:string) {
192
- def e@(weak lives):RangerAppFunctionDesc
193
- for static_methods m:RangerAppFunctionDesc i {
194
- if (m.name == f_name) {
195
- e = m
196
- return e
197
- }
198
- }
199
- for extends_classes cname:string i {
200
- def cDesc:RangerAppClassDesc (ctx.findClass(cname))
201
- if (cDesc.hasStaticMethod(f_name)) {
202
- return (cDesc.findStaticMethod(f_name))
203
- }
204
- }
205
- return e
206
- }
207
-
208
- fn findVariable@(optional weak):RangerAppParamDesc (f_name:string) {
209
-
210
- def e:RangerAppParamDesc
211
- for variables m:RangerAppParamDesc i {
212
- if (m.name == f_name) {
213
- e = m
214
- return e
215
- }
216
- }
217
- for extends_classes cname:string i {
218
- def cDesc:RangerAppClassDesc (ctx.findClass(cname))
219
- return (cDesc.findVariable(f_name))
220
- }
221
- return e
222
- }
223
- fn addParentClass:void (p_name:string) {
224
- push extends_classes p_name
225
- }
226
-
227
- fn createVariable ( node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter ) {
228
-
229
- try {
230
-
231
- def parser (ctx.getParser())
232
- def s:string (node.getVRefAt(1))
233
- def vDef@(lives):CodeNode (itemAt node.children 1)
234
- def p@(temp):RangerAppParamDesc (new RangerAppParamDesc ())
235
-
236
- if(vDef.has_type_annotation) {
237
- parser.CheckTypeAnnotationOf( vDef ctx wr )
238
- }
239
- if( s != ((ctx.transformWord(s)))) {
240
- ; ctx.addError( node "Can not use reserved word " + s + " as class propery")
241
- }
242
- def currC this
243
-
244
- ; immutable classes have only weak properties
245
- if currC.is_immutable {
246
- vDef.setFlag("weak")
247
- if( vDef.value_type == RangerNodeType.Array) {
248
- def initNode (node.newExpressionNode())
249
- initNode.push( (node.newVRefNode("new")) )
250
- def tDef (node.newVRefNode("Vector"))
251
-
252
- ; Vector@(string)
253
- def vAnn (node.newExpressionNode())
254
- vAnn.push( (node.newVRefNode(vDef.array_type)))
255
- tDef.has_vref_annotation = true
256
- tDef.vref_annotation = vAnn
257
- initNode.push(tDef)
258
-
259
- set node.children 2 (initNode)
260
-
261
- vDef.value_type = RangerNodeType.VRef
262
- vDef.type_name = "Vector"
263
- ; def obj:Vector@(string)
264
- def tAnn (node.newExpressionNode())
265
- tAnn.push( (node.newVRefNode(vDef.array_type)))
266
- vDef.has_type_annotation = true
267
- vDef.type_annotation = tAnn
268
-
269
- parser.CheckTypeAnnotationOf( vDef ctx wr )
270
- parser.CheckVRefTypeAnnotationOf( tDef ctx wr )
271
-
272
- }
273
- if( vDef.value_type == RangerNodeType.Hash) {
274
- def initNode (node.newExpressionNode())
275
- initNode.push( (node.newVRefNode("new")) )
276
- def tDef (node.newVRefNode("Map"))
277
-
278
- ; Vector@(string)
279
- def vAnn (node.newExpressionNode())
280
- vAnn.push( (node.newVRefNode(vDef.key_type)))
281
- vAnn.push( (node.newVRefNode(vDef.array_type)))
282
- tDef.has_vref_annotation = true
283
- tDef.vref_annotation = vAnn
284
- initNode.push(tDef)
285
- set node.children 2 (initNode)
286
-
287
- vDef.value_type = RangerNodeType.VRef
288
- vDef.type_name = "Map"
289
- ; def obj:Vector@(string)
290
- def tAnn (node.newExpressionNode())
291
- tAnn.push( (node.newVRefNode(vDef.key_type)))
292
- tAnn.push( (node.newVRefNode(vDef.array_type)))
293
- vDef.has_type_annotation = true
294
- vDef.type_annotation = tAnn
295
-
296
- parser.CheckTypeAnnotationOf( vDef ctx wr )
297
- parser.CheckVRefTypeAnnotationOf( tDef ctx wr )
298
-
299
- }
300
- }
301
-
302
- ; transforming reserved words here
303
- p.name = s
304
- p.value_type = vDef.value_type
305
- p.node = node
306
- p.is_class_variable = true
307
- p.varType = RangerContextVarType.Property
308
- p.node = node
309
- p.nameNode = vDef
310
- vDef.hasParamDesc = true
311
- vDef.ownParamDesc = p
312
- vDef.paramDesc = p
313
- node.hasParamDesc = true
314
- node.paramDesc = p
315
-
316
- if (vDef.hasFlag("weak")) {
317
- p.changeStrength(0 2 (unwrap p.nameNode))
318
- } {
319
- p.changeStrength(2 2 (unwrap p.nameNode))
320
- }
321
-
322
- if ((array_length node.children) > 2) {
323
- p.set_cnt = 1
324
- p.init_cnt = 1
325
- p.def_value = (itemAt node.children 2)
326
- p.is_optional = false
327
- if(p.def_value.value_type == RangerNodeType.String) {
328
- vDef.type_name = "string"
329
- }
330
- if(p.def_value.value_type == RangerNodeType.Integer) {
331
- vDef.type_name = "int"
332
- }
333
- if(p.def_value.value_type == RangerNodeType.Double) {
334
- vDef.type_name = "double"
335
- }
336
- if(p.def_value.value_type == RangerNodeType.Boolean) {
337
- vDef.type_name = "boolean"
338
- }
339
- def valueNode (itemAt node.children 2)
340
- if( (array_length valueNode.children) > 0) {
341
- def fc (valueNode.getFirst())
342
- if(fc.vref == "new") {
343
- def second (valueNode.getSecond())
344
- parser.CheckVRefTypeAnnotationOf( second ctx wr )
345
- }
346
- }
347
- } {
348
- p.is_optional = true
349
- if (false == ((vDef.value_type == RangerNodeType.Array) || (vDef.value_type == RangerNodeType.Hash))) {
350
- vDef.setFlag("optional")
351
- }
352
- }
353
- currC.addVariable(p)
354
- def subCtx:RangerAppWriterContext currC.ctx
355
- subCtx.defineVariable(p.name p)
356
- p.is_class_variable = true
357
- ; print "^^^^ added variable " + p.name + " to class " + currC.name
358
- } {
359
- ctx.addError( node ('Could not add variable into class ' + this.name) )
360
- }
361
- }
362
-
363
- fn addVariable:void (desc@(strong):RangerAppParamDesc) {
364
- push variables desc
365
- desc.propertyClass = this
366
- }
367
- fn addMethod:void (desc@(strong):RangerAppFunctionDesc) {
368
- set defined_methods desc.name true
369
- push methods desc
370
-
371
- def defVs:RangerAppMethodVariants (get method_variants desc.name)
372
- if (null? defVs) {
373
- def new_v:RangerAppMethodVariants (new RangerAppMethodVariants ())
374
- set method_variants desc.name new_v
375
- push defined_variants desc.name
376
- push new_v.variants desc
377
- } {
378
- def new_v2:RangerAppMethodVariants (unwrap defVs)
379
- push new_v2.variants desc
380
- }
381
- desc.container_class = this
382
-
383
- }
384
- fn addStaticMethod:void (desc@(strong):RangerAppFunctionDesc) {
385
- set defined_static_methods desc.name true
386
- push static_methods desc
387
-
388
- if(desc.name == "main") {
389
- def nn (desc.nameNode)
390
- if(nn.has_vref_annotation == false) {
391
- def vAnn (node.newExpressionNode())
392
- nn.has_vref_annotation = true
393
- nn.vref_annotation = vAnn
394
- }
395
- push nn.vref_annotation.children (nn.vref_annotation.newVRefNode("main"))
396
-
397
- }
398
- }
399
- }
400
-
@@ -1,86 +0,0 @@
1
-
2
- Enum RangerAnnType:int (
3
- None
4
- Expression
5
- Type
6
- VRef
7
- )
8
-
9
- Enum RangerMethodCallType:int (
10
- None
11
- Method
12
- Static
13
- )
14
-
15
- Enum RangerWrap:int (
16
- None
17
- Optional
18
- Unwrap
19
- )
20
-
21
- Enum RangerVForce:int (
22
- None
23
- Weak
24
- Strong
25
- )
26
-
27
- Enum RangerNodeType:int (
28
- NoType
29
- InvalidType
30
- Double
31
- Integer
32
- String
33
- Boolean ; 5
34
- Array
35
- Hash
36
- ImmutableArray
37
- ImmutableHash
38
- Object ; 10
39
- VRef ; 11
40
- Comment
41
- Enum
42
- Char
43
- CharBuffer
44
- Expression
45
- ExpressionType
46
- Lambda
47
- XMLNode
48
- XMLText
49
- XMLAttr
50
- XMLCDATA
51
- Dictionary
52
- Any
53
- Class ; 25
54
- GenericClass
55
- ClassRef
56
- Method
57
- ClassVar
58
- Function
59
- Literal
60
- Quasiliteral
61
- Null
62
- ArrayLiteral
63
- )
64
-
65
- Enum RangerNodeRefType:int (
66
- NoType
67
- Weak
68
- Strong
69
- Shared
70
- StrongImmutable
71
- )
72
-
73
- Enum RangerContextVarType (
74
- NoType
75
- This
76
- ThisProperty
77
- NewObject
78
- FunctionParameter
79
- LocalVariable
80
- Array
81
- Object
82
- Property
83
- Class
84
- Function
85
- )
86
-
@@ -1,127 +0,0 @@
1
-
2
- operator type:void all {
3
- fn r.funcdesc:RangerAppFunctionDesc ( node:CodeNode ctx:RangerAppWriterContext ) {
4
- def m@(lives temp):RangerAppFunctionDesc (new RangerAppFunctionDesc ())
5
- def cn:CodeNode (node.getSecond())
6
- m.name = cn.vref
7
- m.compiledName = (ctx.transformWord(cn.vref))
8
- m.node = node
9
- m.nameNode = (itemAt node.children 1)
10
- if (node.hasBooleanProperty("strong")) {
11
- m.refType = RangerNodeRefType.Strong
12
- } {
13
- m.refType = RangerNodeRefType.Weak
14
- }
15
- return m
16
- }
17
- }
18
- class RangerAppFunctionDesc {
19
- Extends (RangerAppParamDesc)
20
- def name:string ""
21
- def ref_cnt:int 0
22
- def node@(weak):CodeNode
23
- def nameNode@(weak):CodeNode
24
- def fnBody@(weak):CodeNode
25
- def params:[RangerAppParamDesc]
26
- def return_value:RangerAppParamDesc
27
- def is_method:boolean false
28
- def is_static:boolean false
29
- def is_lambda false
30
- def is_unsed false
31
- def is_called_from_main false
32
- def container_class:RangerAppClassDesc
33
- def refType:RangerNodeRefType RangerNodeRefType.NoType
34
- def fnCtx:RangerAppWriterContext
35
-
36
- def insideFn@(weak):RangerAppFunctionDesc
37
- def call_graph_done false
38
- def isCalling@(weak):[RangerAppFunctionDesc]
39
- def isCalledBy@(weak):[RangerAppFunctionDesc]
40
- def isUsingClasses@(weak):[RangerAppClassDesc]
41
- def isDirectlyUsingClasses@(weak):[RangerAppClassDesc]
42
-
43
- def myLambdas@(weak):[RangerAppFunctionDesc]
44
-
45
- fn addCallTo( m@(weak):RangerAppFunctionDesc) {
46
- if( (indexOf m.isCalledBy this) < 0 ) {
47
- push m.isCalledBy this
48
- push isCalling m
49
- }
50
- }
51
-
52
- fn addIndirectClassUsage( m@(weak):RangerAppClassDesc ctx:RangerAppWriterContext ) {
53
- if( (indexOf this.isUsingClasses m) < 0 ) {
54
- push this.isUsingClasses m
55
- m.variables.forEach({
56
- def nn item.nameNode
57
- if( ctx.isDefinedClass( nn.type_name )) {
58
- def cc (ctx.findClass(nn.type_name))
59
- this.addIndirectClassUsage( cc ctx )
60
- }
61
- if( ctx.isDefinedClass( nn.array_type )) {
62
- def cc (ctx.findClass(nn.array_type))
63
- this.addIndirectClassUsage( cc ctx )
64
- }
65
- })
66
- }
67
- }
68
-
69
-
70
- fn addClassUsage( m@(weak):RangerAppClassDesc ctx:RangerAppWriterContext ) {
71
- if( (indexOf this.isUsingClasses m) < 0 ) {
72
- push this.isUsingClasses m
73
- push this.isDirectlyUsingClasses m
74
- m.variables.forEach({
75
- def nn item.nameNode
76
- if( ctx.isDefinedClass( nn.type_name )) {
77
- def cc (ctx.findClass(nn.type_name))
78
- this.addIndirectClassUsage( cc ctx )
79
- }
80
- if( ctx.isDefinedClass( nn.array_type )) {
81
- def cc (ctx.findClass(nn.array_type))
82
- this.addIndirectClassUsage( cc ctx )
83
- }
84
- })
85
- } {
86
- if( (indexOf this.isDirectlyUsingClasses m) < 0 ) {
87
- push this.isDirectlyUsingClasses m
88
- }
89
- }
90
- }
91
-
92
-
93
- fn forOtherVersions ( ctx:RangerAppWriterContext cb:(_:void (item:RangerAppFunctionDesc))) {
94
- if(null? this.container_class) {
95
- return
96
- }
97
- def f this
98
- def cc (unwrap f.container_class)
99
- cc.extends_classes.forEach({
100
- def otherClass (ctx.findClass(item))
101
- if(otherClass.hasMethod(f.name)) {
102
- def m (otherClass.findMethod(f.name))
103
- cb( m )
104
- }
105
- })
106
- def root (ctx.getRoot())
107
- root.definedClasses.forEach({
108
- if( (indexOf item.extends_classes f.container_class.name) >= 0 ) {
109
- if(item.hasMethod(f.name)) {
110
- def m (item.findMethod(f.name))
111
- cb( m )
112
- }
113
- }
114
- })
115
- }
116
-
117
- fn isFunction:boolean () {
118
- return true
119
- }
120
- fn isClass:boolean () {
121
- return false
122
- }
123
- fn isProperty:boolean () {
124
- return false
125
- }
126
- }
127
-
@@ -1,15 +0,0 @@
1
- Import "ng_RangerAppEnums.clj"
2
-
3
- class RangerAppTodo {
4
- def description:string ""
5
- def todonode@(weak):CodeNode
6
- }
7
-
8
- class RangerCompilerMessage {
9
- def error_level:int 0
10
- def code_line:int 0
11
- def fileName:string ""
12
- def description:string ""
13
- def node@(weak):CodeNode
14
- }
15
-
@@ -1,20 +0,0 @@
1
-
2
- class RangerAppOperatorDesc {
3
-
4
- Extends (RangerAppParamDesc)
5
- def name:string ""
6
- def ref_cnt:int 0
7
- def node@(weak):CodeNode
8
- def nameNode@(weak):CodeNode
9
- def fnBody@(weak):CodeNode
10
- def op_params@(weak):[CodeNode]
11
- def firstArg:CodeNode
12
-
13
- fn isOperator:boolean () {
14
- return true
15
- }
16
- fn isProperty:boolean () {
17
- return false
18
- }
19
- }
20
-