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.
- package/CHANGELOG.md +114 -0
- package/README.md +956 -133
- package/{compiler/Lang.clj → dist/Lang.rgr} +2345 -75
- package/dist/README.md +116 -0
- package/dist/{bin/api.d.ts → api.d.ts} +430 -154
- package/dist/api.js +34345 -0
- package/{lib/Ajax.clj → dist/lib/Ajax.rgr} +1 -1
- package/{lib/CmdParams.clj → dist/lib/CmdParams.rgr} +72 -72
- package/{lib/Crypto.clj → dist/lib/Crypto.rgr} +1 -1
- package/{lib/DOMLib.clj → dist/lib/DOMLib.rgr} +2 -2
- package/{lib/Engine3D.clj → dist/lib/Engine3D.rgr} +1 -1
- package/{lib/ImmutableVector.clj → dist/lib/ImmutableVector.rgr} +364 -364
- package/{lib/IndexedDB.clj → dist/lib/IndexedDB.rgr} +1 -1
- package/{lib/JSON.clj → dist/lib/JSON.rgr} +105 -2
- package/{lib/JinxProcess.clj → dist/lib/JinxProcess.rgr} +3 -3
- package/{lib/Storage.clj → dist/lib/Storage.rgr} +1 -1
- package/{lib/Timers.clj → dist/lib/Timers.rgr} +176 -170
- package/{lib/ViewLib.clj → dist/lib/ViewLib.rgr} +1 -1
- package/dist/lib/lib/ACEEditor.rgr +5 -0
- package/dist/lib/lib/Ajax.rgr +196 -0
- package/dist/lib/lib/CmdParams.rgr +72 -0
- package/dist/lib/lib/Crypto.rgr +90 -0
- package/dist/lib/lib/DOMLib.rgr +307 -0
- package/{examples/3D/Engine3D.clj → dist/lib/lib/Engine3D.rgr} +870 -857
- package/dist/lib/lib/ImmutableVector.rgr +364 -0
- package/dist/lib/lib/IndexedDB.rgr +32 -0
- package/{compiler/JSON.clj → dist/lib/lib/JSON.rgr} +106 -3
- package/dist/lib/lib/JinxProcess.rgr +838 -0
- package/dist/lib/lib/SQL.rgr +44 -0
- package/dist/lib/lib/ServiceLib.rgr +9 -0
- package/dist/lib/lib/Storage.rgr +89 -0
- package/dist/lib/lib/Time.rgr +75 -0
- package/dist/lib/lib/Timers.rgr +176 -0
- package/dist/lib/lib/TypedArrays.rgr +14 -0
- package/dist/lib/lib/ViewLib.rgr +851 -0
- package/dist/lib/lib/WebLib.rgr +47 -0
- package/dist/lib/lib/WebServerLib.rgr +137 -0
- package/{lib/ranger-dir.clj → dist/lib/lib/ranger-dir.rgr} +1 -1
- package/{compiler/stdlib.clj → dist/lib/lib/stdlib.rgr} +42 -19
- package/{lib/stdops.clj → dist/lib/lib/stdops.rgr} +1 -1
- package/dist/lib/ranger-dir.rgr +175 -0
- package/{lib/stdlib.clj → dist/lib/stdlib.rgr} +2 -2
- package/dist/lib/stdops.rgr +168 -0
- package/dist/package.json +47 -0
- package/{compiler/bin/output.js → dist/rgrc.js} +15377 -7936
- package/dist/stdops.rgr +168 -0
- package/package.json +196 -39
- package/adventofcode/day1/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day1/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day1/bin/LambdaSignature3.java +0 -3
- package/adventofcode/day1/bin/day1.cpp +0 -124
- package/adventofcode/day1/bin/day1.go +0 -75
- package/adventofcode/day1/bin/day1.js +0 -45
- package/adventofcode/day1/bin/day1.php +0 -46
- package/adventofcode/day1/bin/day1.scala +0 -48
- package/adventofcode/day1/bin/day1.swift +0 -48
- package/adventofcode/day1/bin/day1_part2.cpp +0 -180
- package/adventofcode/day1/bin/day1_part2.go +0 -123
- package/adventofcode/day1/bin/day1_part2.js +0 -76
- package/adventofcode/day1/bin/day1_part2.php +0 -88
- package/adventofcode/day1/bin/day1_part2.scala +0 -81
- package/adventofcode/day1/bin/day1_part2.swift +0 -91
- package/adventofcode/day1/bin/day_one.java +0 -38
- package/adventofcode/day1/bin/day_one_part_two.java +0 -57
- package/adventofcode/day1/bin/operatorsOf.java +0 -37
- package/adventofcode/day1/bin/operatorsOf_5.java +0 -10
- package/adventofcode/day1/bin/operatorsOfboolean_5.java +0 -10
- package/adventofcode/day1/bin/variant.hpp +0 -2416
- package/adventofcode/day1/compile.bat +0 -7
- package/adventofcode/day1/compile2.bat +0 -7
- package/adventofcode/day1/day1.clj +0 -19
- package/adventofcode/day1/day1_part2.clj +0 -43
- package/adventofcode/day1/input1.txt +0 -1
- package/adventofcode/day2/bin/LambdaSignature1.class +0 -0
- package/adventofcode/day2/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day2/bin/LambdaSignature2.class +0 -0
- package/adventofcode/day2/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day2/bin/day2.cpp +0 -133
- package/adventofcode/day2/bin/day2.go +0 -85
- package/adventofcode/day2/bin/day2.js +0 -45
- package/adventofcode/day2/bin/day2.php +0 -59
- package/adventofcode/day2/bin/day2.scala +0 -54
- package/adventofcode/day2/bin/day2.swift +0 -62
- package/adventofcode/day2/bin/day2_part2.cpp +0 -150
- package/adventofcode/day2/bin/day2_part2.go +0 -101
- package/adventofcode/day2/bin/day2_part2.js +0 -54
- package/adventofcode/day2/bin/day2_part2.php +0 -80
- package/adventofcode/day2/bin/day2_part2.scala +0 -68
- package/adventofcode/day2/bin/day2_part2.swift +0 -82
- package/adventofcode/day2/bin/day_two.java +0 -61
- package/adventofcode/day2/bin/day_two_part_two$1$1$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two$1$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two.java +0 -80
- package/adventofcode/day2/bin/operatorsOf.class +0 -0
- package/adventofcode/day2/bin/operatorsOf.java +0 -18
- package/adventofcode/day2/bin/variant.hpp +0 -2416
- package/adventofcode/day2/compile.bat +0 -7
- package/adventofcode/day2/compile2.bat +0 -7
- package/adventofcode/day2/day2.clj +0 -60
- package/adventofcode/day2/day2_part2.clj +0 -69
- package/adventofcode/day2/input1.txt +0 -1
- package/adventofcode/day3/bin/Grid.java +0 -92
- package/adventofcode/day3/bin/GridRow.java +0 -5
- package/adventofcode/day3/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day3/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day3/bin/LambdaSignature3.java +0 -3
- package/adventofcode/day3/bin/day3.cpp +0 -64
- package/adventofcode/day3/bin/day3.go +0 -55
- package/adventofcode/day3/bin/day3.js +0 -42
- package/adventofcode/day3/bin/day3.php +0 -41
- package/adventofcode/day3/bin/day3.scala +0 -52
- package/adventofcode/day3/bin/day3.swift +0 -43
- package/adventofcode/day3/bin/day3_part2.cpp +0 -216
- package/adventofcode/day3/bin/day3_part2.go +0 -188
- package/adventofcode/day3/bin/day3_part2.js +0 -123
- package/adventofcode/day3/bin/day3_part2.php +0 -135
- package/adventofcode/day3/bin/day3_part2.swift +0 -131
- package/adventofcode/day3/bin/day_three_part_two.java +0 -43
- package/adventofcode/day3/bin/day_two.java +0 -42
- package/adventofcode/day3/bin/operatorsOf.java +0 -14
- package/adventofcode/day3/bin/variant.hpp +0 -2416
- package/adventofcode/day3/compile.bat +0 -7
- package/adventofcode/day3/compile2.bat +0 -7
- package/adventofcode/day3/day3.clj +0 -42
- package/adventofcode/day3/day3_part2.clj +0 -112
- package/adventofcode/day4/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day4/bin/day4.cpp +0 -118
- package/adventofcode/day4/bin/day4.go +0 -75
- package/adventofcode/day4/bin/day4.js +0 -40
- package/adventofcode/day4/bin/day4.php +0 -52
- package/adventofcode/day4/bin/day4.scala +0 -47
- package/adventofcode/day4/bin/day4.swift +0 -56
- package/adventofcode/day4/bin/day4_part2.go +0 -129
- package/adventofcode/day4/bin/day4_part2.js +0 -72
- package/adventofcode/day4/bin/day_four.java +0 -41
- package/adventofcode/day4/bin/inputData.java +0 -7
- package/adventofcode/day4/bin/operatorsOf.java +0 -11
- package/adventofcode/day4/bin/variant.hpp +0 -2416
- package/adventofcode/day4/compile.bat +0 -7
- package/adventofcode/day4/compile2.bat +0 -7
- package/adventofcode/day4/day4.clj +0 -32
- package/adventofcode/day4/day4_part2.clj +0 -44
- package/adventofcode/day4/input.clj +0 -519
- package/adventofcode/day4/input.txt +0 -512
- package/bin/api.ts +0 -24471
- package/bin/compiler.ts +0 -24482
- package/bin/output.js +0 -23819
- package/compiler/ColorConsole.clj +0 -22
- package/compiler/ContextOperators.clj +0 -75
- package/compiler/FlowEnterVarDef.clj +0 -223
- package/compiler/InputFileSystem.clj +0 -276
- package/compiler/RangerDocs.clj +0 -7
- package/compiler/TFactory.clj +0 -146
- package/compiler/TFiles.clj +0 -23
- package/compiler/TFlow.clj +0 -39
- package/compiler/TNodeFactory.clj +0 -84
- package/compiler/TTypes.clj +0 -188
- package/compiler/VirtualCompiler.clj +0 -807
- package/compiler/bin/ng_Compiler.js +0 -23779
- package/compiler/commonmark_plugin.clj +0 -359
- package/compiler/feat2.bat +0 -2
- package/compiler/feats.bat +0 -9
- package/compiler/feature_tests.clj +0 -192
- package/compiler/index.js +0 -2
- package/compiler/issue_57.clj +0 -25
- package/compiler/makefile_plugin.clj +0 -135
- package/compiler/markdown_plugin.clj +0 -386
- package/compiler/maven_plugin.clj +0 -162
- package/compiler/ng_AndroidPageWriter.clj +0 -299
- package/compiler/ng_CodeNode.clj +0 -756
- package/compiler/ng_CodeNodeCompilerExtensions.clj +0 -839
- package/compiler/ng_Compiler.clj +0 -49
- package/compiler/ng_CompilerGeneric.clj +0 -260
- package/compiler/ng_CompilerOrig.clj +0 -854
- package/compiler/ng_DictNode.clj +0 -346
- package/compiler/ng_DictNode2.clj +0 -316
- package/compiler/ng_Execute.clj +0 -138
- package/compiler/ng_Execute1.clj +0 -129
- package/compiler/ng_FlowWork.clj +0 -3951
- package/compiler/ng_LiveCompiler.clj +0 -1109
- package/compiler/ng_RagnerJavaScriptClassWriter.clj +0 -402
- package/compiler/ng_RangerActiveOperators.clj +0 -86
- package/compiler/ng_RangerAppClassDesc.clj +0 -400
- package/compiler/ng_RangerAppEnums.clj +0 -86
- package/compiler/ng_RangerAppFunctionDesc.clj +0 -127
- package/compiler/ng_RangerAppMessages.clj +0 -15
- package/compiler/ng_RangerAppOperatorDesc.clj +0 -20
- package/compiler/ng_RangerAppParamDesc.clj +0 -388
- package/compiler/ng_RangerAppWriterContext.clj +0 -1793
- package/compiler/ng_RangerArgMatch.clj +0 -638
- package/compiler/ng_RangerCSharpClassWriter.clj +0 -484
- package/compiler/ng_RangerCppClassWriter.clj +0 -1023
- package/compiler/ng_RangerDocGenerator.clj +0 -305
- package/compiler/ng_RangerFlowParser.clj +0 -4992
- package/compiler/ng_RangerFlowParserOrig.clj +0 -4002
- package/compiler/ng_RangerGenericClassWriter.clj +0 -573
- package/compiler/ng_RangerGolangClassWriter.clj +0 -1766
- package/compiler/ng_RangerImmutableExtension.clj +0 -77
- package/compiler/ng_RangerJava7ClassWriter.clj +0 -961
- package/compiler/ng_RangerJavaScriptClassWriter.clj +0 -1040
- package/compiler/ng_RangerKotlinClassWriter.clj +0 -372
- package/compiler/ng_RangerLanguageWriters.clj +0 -14
- package/compiler/ng_RangerLispParser.clj +0 -873
- package/compiler/ng_RangerPHPClassWriter.clj +0 -643
- package/compiler/ng_RangerPlugin.clj +0 -41
- package/compiler/ng_RangerRangerClassWriter.clj +0 -357
- package/compiler/ng_RangerRustClassWriter.clj +0 -420
- package/compiler/ng_RangerScalaClassWriter.clj +0 -818
- package/compiler/ng_RangerSerializeClass.clj +0 -502
- package/compiler/ng_RangerServiceBuilder.clj +0 -63
- package/compiler/ng_RangerSwift3ClassWriter.clj +0 -809
- package/compiler/ng_RangerSwiftClassWriter.clj +0 -0
- package/compiler/ng_RangerTypeClass.clj +0 -45
- package/compiler/ng_SourceParser.clj +0 -241
- package/compiler/ng_SourceParser2.clj +0 -214
- package/compiler/ng_WebPageWriter.clj +0 -39
- package/compiler/ng_jsonParser.clj +0 -340
- package/compiler/ng_p_test.clj +0 -1711
- package/compiler/ng_parser.clj +0 -911
- package/compiler/ng_parser2.clj +0 -735
- package/compiler/ng_parser2_backup.clj +0 -1679
- package/compiler/ng_parser_backup.clj +0 -886
- package/compiler/ng_parser_ok.clj +0 -1718
- package/compiler/ng_parser_ok2.clj +0 -1717
- package/compiler/ng_parser_std_match.clj +0 -687
- package/compiler/ng_parser_std_match2.clj +0 -1012
- package/compiler/ng_parser_v2.clj +0 -1251
- package/compiler/ng_ui.clj +0 -403
- package/compiler/ng_ui_test.clj +0 -18
- package/compiler/ng_writer.clj +0 -338
- package/compiler/ng_xmlParser.clj +0 -472
- package/compiler/ng_xmlParser2.clj +0 -317
- package/compiler/ng_xmlParser3.clj +0 -251
- package/compiler/opdoc.bat +0 -4
- package/compiler/operators.md +0 -290
- package/compiler/p.bat +0 -4
- package/compiler/package.json +0 -10
- package/compiler/pcmd.bat +0 -4
- package/compiler/pcmd2.bat +0 -3
- package/compiler/plaintext_plugin.clj +0 -69
- package/compiler/plugin.bat +0 -19
- package/compiler/plugin2.bat +0 -4
- package/compiler/plugin_app.bat +0 -3
- package/compiler/plugin_apps.clj +0 -27
- package/compiler/plugins.bat +0 -10
- package/compiler/reveal_plugin.clj +0 -409
- package/compiler/simplePlugin.clj +0 -780
- package/compiler/t.bat +0 -3
- package/compiler/test_any.clj +0 -43
- package/compiler/test_call.clj +0 -141
- package/compiler/test_chain.clj +0 -79
- package/compiler/test_json.clj +0 -10
- package/compiler/test_lambda.clj +0 -153
- package/compiler/test_pcmd.clj +0 -32
- package/compiler/test_pcmd2.clj +0 -29
- package/compiler/test_plugin.clj +0 -237
- package/compiler/test_readfile.clj +0 -13
- package/compiler/test_reveal.clj +0 -19
- package/compiler/test_slides.clj +0 -312
- package/compiler/test_types.clj +0 -143
- package/compiler/test_types2.clj +0 -49
- package/compiler/test_types3.clj +0 -53
- package/compiler/test_var.clj +0 -40
- package/compiler/tonpm.bat +0 -14
- package/compiler/tonpm2.bat +0 -12
- package/compiler/ui_plugin.clj +0 -507
- package/compiler/ui_plugin2.clj +0 -427
- package/compiler/update-git.bat +0 -3
- package/compiler/vcomp.bat +0 -4
- package/compiler/viewbuilder_Android.clj +0 -176
- package/compiler/viewbuilder_Web.clj +0 -105
- package/dist/bin/api.js +0 -32422
- package/dist/bin/compiler.d.ts +0 -1638
- package/dist/bin/compiler.js +0 -32444
- package/examples/3D/bin/test_3d.js +0 -329
- package/examples/3D/test_3d.clj +0 -385
- package/examples/EVGColor/EVGColor.clj +0 -310
- package/examples/EVGColor/EVGColorContext.clj +0 -176
- package/examples/EVGColor/bin/EVGColor.js +0 -286
- package/examples/EVGColor/bin/minimized.js +0 -286
- package/examples/SVGPath/SVGPath.clj +0 -625
- package/examples/SVGPath/Vec2.clj +0 -103
- package/examples/SVGPath/bin/SVGPath.cpp +0 -887
- package/examples/SVGPath/bin/SVGPath.js +0 -682
- package/examples/SVGPath/bin/SVGPath.ts +0 -711
- package/examples/SVGPath/bin/minimized.js +0 -578
- package/examples/SVGPath/bin/variant.hpp +0 -2416
- package/examples/minification/Vec2.clj +0 -103
- package/examples/minification/bin/minified.js +0 -44
- package/examples/minification/bin/test.js +0 -117
- package/examples/minification/test.clj +0 -13
- package/fiddle/VirtualCompiler.js +0 -23495
- package/fiddle/browser_editor.js +0 -13240
- package/fiddle/compileEnv.js +0 -1
- package/fiddle/compileEnv.json +0 -1
- package/fiddle/lang_data.js +0 -1
- package/index.html +0 -18
- package/native/httpd/HttpTester.clj +0 -33
- package/native/httpd/RangerWebService.clj +0 -81
- package/operators.md +0 -290
- package/tsconfig.json +0 -29
- package/versions/cpp/compiler.cpp +0 -15032
- package/versions/es6/compiler.js +0 -12860
- package/versions/go/compiler.go +0 -21338
- package/versions/java/AfterCodeNode.java +0 -4
- package/versions/java/ClassJoinPoint.java +0 -6
- package/versions/java/CodeFile.java +0 -42
- package/versions/java/CodeFileSystem.java +0 -72
- package/versions/java/CodeNode.java +0 -807
- package/versions/java/CodeSlice.java +0 -13
- package/versions/java/CodeWriter.java +0 -185
- package/versions/java/ColorConsole.java +0 -8
- package/versions/java/CompilerInterface.java +0 -213
- package/versions/java/DictNode.java +0 -353
- package/versions/java/LiveCompiler.java +0 -772
- package/versions/java/NodeEvalState.java +0 -24
- package/versions/java/OpFindResult.java +0 -6
- package/versions/java/RangerAppArrayValue.java +0 -7
- package/versions/java/RangerAppClassDesc.java +0 -217
- package/versions/java/RangerAppEnum.java +0 -14
- package/versions/java/RangerAppFunctionDesc.java +0 -20
- package/versions/java/RangerAppHashValue.java +0 -11
- package/versions/java/RangerAppInterfaceImpl.java +0 -6
- package/versions/java/RangerAppMethodVariants.java +0 -6
- package/versions/java/RangerAppParamDesc.java +0 -321
- package/versions/java/RangerAppTodo.java +0 -6
- package/versions/java/RangerAppValue.java +0 -10
- package/versions/java/RangerAppWriterContext.java +0 -800
- package/versions/java/RangerArgMatch.java +0 -317
- package/versions/java/RangerBackReference.java +0 -7
- package/versions/java/RangerCSharpClassWriter.java +0 -287
- package/versions/java/RangerCompilerMessage.java +0 -9
- package/versions/java/RangerCppClassWriter.java +0 -725
- package/versions/java/RangerFlowParser.java +0 -2142
- package/versions/java/RangerGenericClassWriter.java +0 -367
- package/versions/java/RangerGolangClassWriter.java +0 -1379
- package/versions/java/RangerJava7ClassWriter.java +0 -652
- package/versions/java/RangerJavaScriptClassWriter.java +0 -305
- package/versions/java/RangerKotlinClassWriter.java +0 -380
- package/versions/java/RangerLispParser.java +0 -845
- package/versions/java/RangerNodeValue.java +0 -9
- package/versions/java/RangerPHPClassWriter.java +0 -527
- package/versions/java/RangerParamEventHandler.java +0 -6
- package/versions/java/RangerParamEventList.java +0 -5
- package/versions/java/RangerParamEventMap.java +0 -27
- package/versions/java/RangerRangerClassWriter.java +0 -268
- package/versions/java/RangerRefForce.java +0 -7
- package/versions/java/RangerScalaClassWriter.java +0 -365
- package/versions/java/RangerSerializeClass.java +0 -148
- package/versions/java/RangerSwift3ClassWriter.java +0 -548
- package/versions/java/RangerTypeClass.java +0 -17
- package/versions/java/SourceCode.java +0 -65
- package/versions/php/compiler.php +0 -13830
- package/versions/swift3/compiler.swift +0 -12542
- /package/{lib/ACEEditor.clj → dist/lib/ACEEditor.rgr} +0 -0
- /package/{lib/SQL.clj → dist/lib/SQL.rgr} +0 -0
- /package/{lib/ServiceLib.clj → dist/lib/ServiceLib.rgr} +0 -0
- /package/{lib/Time.clj → dist/lib/Time.rgr} +0 -0
- /package/{lib/TypedArrays.clj → dist/lib/TypedArrays.rgr} +0 -0
- /package/{lib/WebLib.clj → dist/lib/WebLib.rgr} +0 -0
- /package/{lib/WebServerLib.clj → dist/lib/WebServerLib.rgr} +0 -0
|
@@ -1,961 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
Import "ng_AndroidPageWriter.clj"
|
|
3
|
-
|
|
4
|
-
operators {
|
|
5
|
-
trace _:void () {
|
|
6
|
-
templates {
|
|
7
|
-
es6 ('console.trace()')
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
class RangerJava7ClassWriter {
|
|
13
|
-
Extends (RangerGenericClassWriter)
|
|
14
|
-
def compiler:LiveCompiler
|
|
15
|
-
|
|
16
|
-
def signatures:[string:int]
|
|
17
|
-
def signature_cnt:int 0
|
|
18
|
-
def iface_created:[string:boolean]
|
|
19
|
-
|
|
20
|
-
fn getSignatureInterface:string (s:string) {
|
|
21
|
-
def idx@(optional) (get signatures s)
|
|
22
|
-
if(!null? idx) {
|
|
23
|
-
return ("LambdaSignature" + (unwrap idx))
|
|
24
|
-
}
|
|
25
|
-
signature_cnt = signature_cnt + 1
|
|
26
|
-
set signatures s signature_cnt
|
|
27
|
-
return ("LambdaSignature" + signature_cnt)
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
fn adjustType:string (tn:string) {
|
|
31
|
-
if (tn == "this") {
|
|
32
|
-
return "this"
|
|
33
|
-
}
|
|
34
|
-
return tn
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
fn getObjectTypeString2:string (type_string:string ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
38
|
-
switch type_string {
|
|
39
|
-
case "int" {
|
|
40
|
-
return "Integer"
|
|
41
|
-
}
|
|
42
|
-
case "string" {
|
|
43
|
-
return "String"
|
|
44
|
-
}
|
|
45
|
-
case "charbuffer" {
|
|
46
|
-
return "byte[]"
|
|
47
|
-
}
|
|
48
|
-
case "char" {
|
|
49
|
-
return "byte"
|
|
50
|
-
}
|
|
51
|
-
case "boolean" {
|
|
52
|
-
return "Boolean"
|
|
53
|
-
}
|
|
54
|
-
case "double" {
|
|
55
|
-
return "Double"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if(ctx.isDefinedClass(type_string)) {
|
|
59
|
-
def cc (ctx.findClass(type_string))
|
|
60
|
-
if(cc.is_system) {
|
|
61
|
-
def current_sys (ctx)
|
|
62
|
-
def sName (unwrap (get cc.systemNames "java7"))
|
|
63
|
-
this.addSystemImport( cc ctx wr )
|
|
64
|
-
return sName
|
|
65
|
-
}
|
|
66
|
-
if(cc.is_union) {
|
|
67
|
-
return "Object"
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return type_string
|
|
71
|
-
}
|
|
72
|
-
fn getTypeString:string (type_string:string) {
|
|
73
|
-
switch type_string {
|
|
74
|
-
case "int" {
|
|
75
|
-
return "Integer"
|
|
76
|
-
}
|
|
77
|
-
case "string" {
|
|
78
|
-
return "String"
|
|
79
|
-
}
|
|
80
|
-
case "charbuffer" {
|
|
81
|
-
return "byte[]"
|
|
82
|
-
}
|
|
83
|
-
case "char" {
|
|
84
|
-
return "byte"
|
|
85
|
-
}
|
|
86
|
-
case "boolean" {
|
|
87
|
-
return "Boolean"
|
|
88
|
-
}
|
|
89
|
-
case "double" {
|
|
90
|
-
return "Double"
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return type_string
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
fn writeTypeDef:void (node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
98
|
-
|
|
99
|
-
def v_type:RangerNodeType node.value_type
|
|
100
|
-
def t_name:string node.type_name
|
|
101
|
-
def a_name:string node.array_type
|
|
102
|
-
def k_name:string node.key_type
|
|
103
|
-
|
|
104
|
-
if ((v_type == RangerNodeType.Object) || (v_type == RangerNodeType.VRef) || (v_type == RangerNodeType.NoType)) {
|
|
105
|
-
v_type = (node.typeNameAsType(ctx))
|
|
106
|
-
}
|
|
107
|
-
if (node.eval_type != RangerNodeType.NoType) {
|
|
108
|
-
v_type = node.eval_type
|
|
109
|
-
if ( (strlen node.eval_type_name) > 0 ) {
|
|
110
|
-
t_name = node.eval_type_name
|
|
111
|
-
}
|
|
112
|
-
if ( (strlen node.eval_array_type) > 0 ) {
|
|
113
|
-
a_name = node.eval_array_type
|
|
114
|
-
}
|
|
115
|
-
if ( (strlen node.eval_key_type) > 0 ) {
|
|
116
|
-
k_name = node.eval_key_type
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (node.hasFlag("optional")) {
|
|
121
|
-
;wr.addImport("java.util.Optional")
|
|
122
|
-
;wr.out("Optional<" false)
|
|
123
|
-
switch v_type {
|
|
124
|
-
; ClojureInterface1
|
|
125
|
-
case RangerNodeType.ExpressionType {
|
|
126
|
-
def sig (this.buildLambdaSignature( (unwrap node.expression_value)))
|
|
127
|
-
def iface_name (this.getSignatureInterface(sig))
|
|
128
|
-
wr.out( iface_name false)
|
|
129
|
-
|
|
130
|
-
if( this.isPackaged(ctx)) {
|
|
131
|
-
def package_name (ctx.getCompilerSetting("package"))
|
|
132
|
-
wr.addImport( ((package_name) + ".interfaces.*") )
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
if( ( has iface_created iface_name) == false ) {
|
|
136
|
-
def fnNode (itemAt node.expression_value.children 0)
|
|
137
|
-
def args (itemAt node.expression_value.children 1)
|
|
138
|
-
set iface_created iface_name true
|
|
139
|
-
def iface_dir "."
|
|
140
|
-
if( this.isPackaged(ctx)) {
|
|
141
|
-
iface_dir = "./interfaces/"
|
|
142
|
-
}
|
|
143
|
-
def utilWr (wr.getFileWriter( iface_dir (iface_name + ".java")))
|
|
144
|
-
if( this.isPackaged(ctx)) {
|
|
145
|
-
def package_name (ctx.getCompilerSetting("package"))
|
|
146
|
-
if( (strlen package_name) > 0) {
|
|
147
|
-
utilWr.out("package " + package_name + ".interfaces;" , true)
|
|
148
|
-
utilWr.out("import " + package_name + ".*;" , true)
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
def importFork (utilWr.fork())
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
utilWr.out("public interface " + iface_name + " { " , true)
|
|
155
|
-
utilWr.indent(1)
|
|
156
|
-
utilWr.out("public " false)
|
|
157
|
-
this.writeTypeDef( fnNode ctx utilWr)
|
|
158
|
-
utilWr.out(" run(" false)
|
|
159
|
-
for args.children arg:CodeNode i {
|
|
160
|
-
if (i > 0) {
|
|
161
|
-
utilWr.out(", " false)
|
|
162
|
-
}
|
|
163
|
-
utilWr.out(" final " false)
|
|
164
|
-
this.writeTypeDef(arg ctx utilWr)
|
|
165
|
-
utilWr.out(" " false)
|
|
166
|
-
utilWr.out(arg.vref false)
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
utilWr.out(");" true)
|
|
170
|
-
utilWr.indent(-1)
|
|
171
|
-
utilWr.out("}" true)
|
|
172
|
-
|
|
173
|
-
forEach (utilWr.getImports ()) {
|
|
174
|
-
importFork.out (("import " + item + ";") , true)
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
case RangerNodeType.Enum {
|
|
181
|
-
wr.out("Integer" false)
|
|
182
|
-
}
|
|
183
|
-
case RangerNodeType.Integer {
|
|
184
|
-
wr.out("Integer" false)
|
|
185
|
-
}
|
|
186
|
-
case RangerNodeType.Double {
|
|
187
|
-
wr.out("Double" false)
|
|
188
|
-
}
|
|
189
|
-
case RangerNodeType.String {
|
|
190
|
-
wr.out("String" false)
|
|
191
|
-
}
|
|
192
|
-
case RangerNodeType.Boolean {
|
|
193
|
-
wr.out("Boolean" false)
|
|
194
|
-
}
|
|
195
|
-
case RangerNodeType.Char {
|
|
196
|
-
wr.out("byte" false)
|
|
197
|
-
}
|
|
198
|
-
case RangerNodeType.CharBuffer {
|
|
199
|
-
wr.out("byte[]" false)
|
|
200
|
-
}
|
|
201
|
-
case RangerNodeType.Hash {
|
|
202
|
-
wr.out( (((("HashMap<" + (this.getObjectTypeString2(k_name ctx wr))) + ",") + (this.getObjectTypeString2(a_name ctx wr))) + ">") , false)
|
|
203
|
-
wr.addImport("java.util.*")
|
|
204
|
-
}
|
|
205
|
-
case RangerNodeType.Array {
|
|
206
|
-
wr.out((("ArrayList<" + (this.getObjectTypeString2(a_name ctx wr))) + ">") , false)
|
|
207
|
-
wr.addImport("java.util.*")
|
|
208
|
-
}
|
|
209
|
-
default {
|
|
210
|
-
if (t_name== "void") {
|
|
211
|
-
wr.out("void" false)
|
|
212
|
-
} {
|
|
213
|
-
wr.out((this.getObjectTypeString2(t_name ctx wr) ), false)
|
|
214
|
-
}
|
|
215
|
-
if(ctx.isDefinedClass(t_name)) {
|
|
216
|
-
def cc (ctx.findClass(t_name))
|
|
217
|
-
if(cc.is_system) {
|
|
218
|
-
this.addSystemImport( cc ctx wr )
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
} {
|
|
224
|
-
switch v_type {
|
|
225
|
-
case RangerNodeType.ExpressionType {
|
|
226
|
-
def sig (this.buildLambdaSignature( (unwrap node.expression_value)))
|
|
227
|
-
def iface_name (this.getSignatureInterface(sig))
|
|
228
|
-
wr.out( iface_name false)
|
|
229
|
-
|
|
230
|
-
def package_name (ctx.getCompilerSetting("package"))
|
|
231
|
-
; wr.addImport( ((package_name) + ".interfaces.*") )
|
|
232
|
-
|
|
233
|
-
if( ( has iface_created iface_name) == false ) {
|
|
234
|
-
def fnNode (itemAt node.expression_value.children 0)
|
|
235
|
-
def args (itemAt node.expression_value.children 1)
|
|
236
|
-
set iface_created iface_name true
|
|
237
|
-
def iface_dir "."
|
|
238
|
-
if( this.isPackaged(ctx)) {
|
|
239
|
-
iface_dir = "./interfaces/"
|
|
240
|
-
}
|
|
241
|
-
def utilWr (wr.getFileWriter( iface_dir (iface_name + ".java")))
|
|
242
|
-
if( this.isPackaged(ctx)) {
|
|
243
|
-
def package_name (ctx.getCompilerSetting("package"))
|
|
244
|
-
if( (strlen package_name) > 0) {
|
|
245
|
-
utilWr.out("package " + package_name + ".interfaces;" , true)
|
|
246
|
-
utilWr.out("import " + package_name + ".*;" , true)
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
def importFork (utilWr.fork())
|
|
252
|
-
|
|
253
|
-
utilWr.out("public interface " + iface_name + " { " , true)
|
|
254
|
-
utilWr.indent(1)
|
|
255
|
-
utilWr.out("public " false)
|
|
256
|
-
this.writeTypeDef( fnNode ctx utilWr)
|
|
257
|
-
utilWr.out(" run(" false)
|
|
258
|
-
for args.children arg:CodeNode i {
|
|
259
|
-
if (i > 0) {
|
|
260
|
-
utilWr.out(", " false)
|
|
261
|
-
}
|
|
262
|
-
utilWr.out(" final " false)
|
|
263
|
-
this.writeTypeDef(arg ctx utilWr)
|
|
264
|
-
utilWr.out(" " false)
|
|
265
|
-
utilWr.out(arg.vref false)
|
|
266
|
-
|
|
267
|
-
}
|
|
268
|
-
utilWr.out(");" true)
|
|
269
|
-
utilWr.indent(-1)
|
|
270
|
-
utilWr.out("}" true)
|
|
271
|
-
|
|
272
|
-
forEach (utilWr.getImports ()) {
|
|
273
|
-
importFork.out (("import " + item + ";") , true)
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
case RangerNodeType.Enum {
|
|
278
|
-
wr.out("Integer" false)
|
|
279
|
-
}
|
|
280
|
-
case RangerNodeType.Integer {
|
|
281
|
-
wr.out("Integer" false)
|
|
282
|
-
}
|
|
283
|
-
case RangerNodeType.Double {
|
|
284
|
-
wr.out("Double" false)
|
|
285
|
-
}
|
|
286
|
-
case RangerNodeType.Char {
|
|
287
|
-
wr.out("byte" false)
|
|
288
|
-
}
|
|
289
|
-
case RangerNodeType.CharBuffer {
|
|
290
|
-
wr.out("byte[]" false)
|
|
291
|
-
}
|
|
292
|
-
case RangerNodeType.String {
|
|
293
|
-
wr.out("String" false)
|
|
294
|
-
}
|
|
295
|
-
case RangerNodeType.Boolean {
|
|
296
|
-
wr.out("Boolean" false)
|
|
297
|
-
}
|
|
298
|
-
case RangerNodeType.Hash {
|
|
299
|
-
wr.out((((("HashMap<" + (this.getObjectTypeString2(k_name ctx wr))) + ",") + (this.getObjectTypeString2(a_name ctx wr)))) + ">" , false)
|
|
300
|
-
wr.addImport("java.util.*")
|
|
301
|
-
}
|
|
302
|
-
case RangerNodeType.Array {
|
|
303
|
-
wr.out((("ArrayList<" + (this.getObjectTypeString2(a_name ctx wr)))) + ">" , false)
|
|
304
|
-
wr.addImport("java.util.*")
|
|
305
|
-
}
|
|
306
|
-
default {
|
|
307
|
-
|
|
308
|
-
def b_object_set false
|
|
309
|
-
; print "Type == " + t_name
|
|
310
|
-
if(ctx.isDefinedClass(t_name)) {
|
|
311
|
-
def cc (ctx.findClass(t_name))
|
|
312
|
-
if(cc.is_union) {
|
|
313
|
-
wr.out("Object" false)
|
|
314
|
-
b_object_set = true
|
|
315
|
-
}
|
|
316
|
-
if(cc.is_system) {
|
|
317
|
-
this.addSystemImport( cc ctx wr )
|
|
318
|
-
def sName (unwrap (get cc.systemNames "java7"))
|
|
319
|
-
wr.out( sName false )
|
|
320
|
-
return
|
|
321
|
-
}
|
|
322
|
-
; lambda signature ??
|
|
323
|
-
}
|
|
324
|
-
if( b_object_set == false) {
|
|
325
|
-
if (t_name == "void") {
|
|
326
|
-
wr.out("void" false)
|
|
327
|
-
} {
|
|
328
|
-
wr.out((this.getTypeString(t_name)) , false)
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
;if (node.hasFlag("optional")) {
|
|
336
|
-
; wr.out(">" false)
|
|
337
|
-
;}
|
|
338
|
-
}
|
|
339
|
-
fn WriteVRef:void (node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
340
|
-
|
|
341
|
-
if (node.vref == "this") {
|
|
342
|
-
if( ctx.inLambda() ) {
|
|
343
|
-
def currC (ctx.getCurrentClass())
|
|
344
|
-
wr.out( (currC.name + ".this") false)
|
|
345
|
-
} {
|
|
346
|
-
wr.out("this" false)
|
|
347
|
-
}
|
|
348
|
-
return
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
if (node.eval_type == RangerNodeType.Enum) {
|
|
352
|
-
if( (array_length node.ns) > 1) {
|
|
353
|
-
def rootObjName:string (itemAt node.ns 0)
|
|
354
|
-
def enumName:string (itemAt node.ns 1)
|
|
355
|
-
def e@(optional):RangerAppEnum (ctx.getEnum(rootObjName))
|
|
356
|
-
if (!null? e) {
|
|
357
|
-
wr.out(("" + (unwrap (get e.values enumName))) false)
|
|
358
|
-
return
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
def max_len:int (array_length node.ns)
|
|
363
|
-
if ((array_length node.nsp) > 0) {
|
|
364
|
-
for node.nsp p:RangerAppParamDesc i {
|
|
365
|
-
|
|
366
|
-
if (i == 0) {
|
|
367
|
-
def p_captured_mutable ( (p.set_cnt > 0 ) && (p.is_captured) && (p.is_class_variable == false))
|
|
368
|
-
if( p.nameNode.value_type == RangerNodeType.Hash || p.nameNode.value_type == RangerNodeType.Array ) {
|
|
369
|
-
p_captured_mutable = false
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
def part:string (itemAt node.ns 0)
|
|
373
|
-
if(part == "this") {
|
|
374
|
-
if( ctx.inLambda() ) {
|
|
375
|
-
def currC (ctx.getCurrentClass())
|
|
376
|
-
wr.out( (currC.name + ".this") false)
|
|
377
|
-
} {
|
|
378
|
-
def currC (ctx.getCurrentClass())
|
|
379
|
-
wr.out( (currC.name + ".this") false)
|
|
380
|
-
}
|
|
381
|
-
continue
|
|
382
|
-
}
|
|
383
|
-
if( p_captured_mutable ) {
|
|
384
|
-
wr.out("[0]" false)
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
if (i > 0) {
|
|
389
|
-
wr.out("." false)
|
|
390
|
-
}
|
|
391
|
-
if ((strlen p.compiledName) > 0) {
|
|
392
|
-
wr.out((this.adjustType(p.compiledName)) false)
|
|
393
|
-
} {
|
|
394
|
-
if ((strlen p.name) > 0) {
|
|
395
|
-
wr.out((this.adjustType(p.name)) false)
|
|
396
|
-
} {
|
|
397
|
-
wr.out((this.adjustType((itemAt node.ns i))) false)
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
if (i < (max_len - 1) ) {
|
|
401
|
-
if (p.nameNode.hasFlag("optional")) {
|
|
402
|
-
; wr.out(".get()" false)
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
return
|
|
407
|
-
}
|
|
408
|
-
if node.hasParamDesc {
|
|
409
|
-
def p:RangerAppParamDesc node.paramDesc
|
|
410
|
-
wr.out(p.compiledName false)
|
|
411
|
-
def p_captured_mutable ( (p.set_cnt > 0 ) && (p.is_captured) && (p.is_class_variable == false) )
|
|
412
|
-
if( p.nameNode.value_type == RangerNodeType.Hash || p.nameNode.value_type == RangerNodeType.Array ) {
|
|
413
|
-
p_captured_mutable = false
|
|
414
|
-
}
|
|
415
|
-
if( p_captured_mutable ) {
|
|
416
|
-
wr.out("[0]" false)
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
return
|
|
420
|
-
}
|
|
421
|
-
for node.ns part:string i {
|
|
422
|
-
if (i > 0) {
|
|
423
|
-
wr.out("." false)
|
|
424
|
-
}
|
|
425
|
-
if(part == "this") {
|
|
426
|
-
if( ctx.inLambda() ) {
|
|
427
|
-
def currC (ctx.getCurrentClass())
|
|
428
|
-
wr.out( (currC.name + ".this") false)
|
|
429
|
-
continue
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
wr.out((this.adjustType(part)) false)
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
fn disabledVarDef:void (node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
437
|
-
if node.hasParamDesc {
|
|
438
|
-
def nn:CodeNode (itemAt node.children 1)
|
|
439
|
-
def p:RangerAppParamDesc nn.paramDesc
|
|
440
|
-
if ((p.ref_cnt == 0) && (p.is_class_variable == false)) {
|
|
441
|
-
wr.out("/** unused: " false)
|
|
442
|
-
}
|
|
443
|
-
wr.out(p.compiledName false)
|
|
444
|
-
if ((array_length node.children) > 2) {
|
|
445
|
-
wr.out(" = " false)
|
|
446
|
-
ctx.setInExpr()
|
|
447
|
-
def value:CodeNode (node.getThird())
|
|
448
|
-
this.WalkNode(value ctx wr)
|
|
449
|
-
ctx.unsetInExpr()
|
|
450
|
-
} {
|
|
451
|
-
def b_was_set:boolean false
|
|
452
|
-
if (nn.value_type == RangerNodeType.Array) {
|
|
453
|
-
wr.out(" = new " false)
|
|
454
|
-
this.writeTypeDef( (unwrap p.nameNode) ctx wr)
|
|
455
|
-
wr.out("()" false)
|
|
456
|
-
b_was_set = true
|
|
457
|
-
}
|
|
458
|
-
if (nn.value_type == RangerNodeType.Hash) {
|
|
459
|
-
wr.out(" = new " false)
|
|
460
|
-
this.writeTypeDef((unwrap p.nameNode) ctx wr)
|
|
461
|
-
wr.out("()" false)
|
|
462
|
-
b_was_set = true
|
|
463
|
-
}
|
|
464
|
-
if ((b_was_set == false) && (nn.hasFlag("optional"))) {
|
|
465
|
-
wr.out(" = null" false)
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
if ((p.ref_cnt == 0) && (p.is_class_variable == true)) {
|
|
469
|
-
wr.out(" /** note: unused */" false)
|
|
470
|
-
}
|
|
471
|
-
if ((p.ref_cnt == 0) && (p.is_class_variable == false)) {
|
|
472
|
-
wr.out(" **/ ;" true)
|
|
473
|
-
} {
|
|
474
|
-
wr.out(";" false)
|
|
475
|
-
wr.newline()
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
fn writeVarDef:void (node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
480
|
-
if node.hasParamDesc {
|
|
481
|
-
def nn:CodeNode (itemAt node.children 1)
|
|
482
|
-
def p:RangerAppParamDesc nn.paramDesc
|
|
483
|
-
|
|
484
|
-
def p_captured_mutable ( (p.set_cnt > 0 ) && (p.is_captured) && (p.is_class_variable == false))
|
|
485
|
-
if( nn.value_type == RangerNodeType.Hash || nn.value_type == RangerNodeType.Array ) {
|
|
486
|
-
p_captured_mutable = false
|
|
487
|
-
}
|
|
488
|
-
if ((p.ref_cnt == 0) && (p.is_class_variable == false)) {
|
|
489
|
-
wr.out("/** unused: " false)
|
|
490
|
-
}
|
|
491
|
-
if( p.is_captured && (p.is_class_variable == false) && (nn.value_type == RangerNodeType.Hash || nn.value_type == RangerNodeType.Array ) ) {
|
|
492
|
-
wr.out("final " false)
|
|
493
|
-
} {
|
|
494
|
-
if ( (p_captured_mutable == false ) && ( (p.set_cnt > 0) || p.is_class_variable) ) {
|
|
495
|
-
wr.out("" false)
|
|
496
|
-
} {
|
|
497
|
-
wr.out("final " false)
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
this.writeTypeDef((unwrap p.nameNode) ctx wr)
|
|
501
|
-
if(p_captured_mutable) {
|
|
502
|
-
wr.out("[]" false)
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
wr.out(" " false)
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
wr.out(p.compiledName false)
|
|
509
|
-
if ((array_length node.children) > 2) {
|
|
510
|
-
wr.out(" = " false)
|
|
511
|
-
ctx.setInExpr()
|
|
512
|
-
def value:CodeNode (node.getThird())
|
|
513
|
-
|
|
514
|
-
if(p_captured_mutable) {
|
|
515
|
-
wr.out(" new " false)
|
|
516
|
-
this.writeTypeDef((unwrap p.nameNode) ctx wr)
|
|
517
|
-
wr.out("[]{" false)
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
this.WalkNode(value ctx wr)
|
|
521
|
-
if(p_captured_mutable) {
|
|
522
|
-
wr.out("}" false)
|
|
523
|
-
}
|
|
524
|
-
ctx.unsetInExpr()
|
|
525
|
-
} {
|
|
526
|
-
if(p_captured_mutable) {
|
|
527
|
-
wr.out(" = new " false)
|
|
528
|
-
this.writeTypeDef((unwrap p.nameNode) ctx wr)
|
|
529
|
-
wr.out("[]{ null }" false)
|
|
530
|
-
} {
|
|
531
|
-
def b_was_set:boolean false
|
|
532
|
-
if (nn.value_type == RangerNodeType.Array) {
|
|
533
|
-
wr.out(" = new " false)
|
|
534
|
-
this.writeTypeDef( (unwrap p.nameNode) ctx wr)
|
|
535
|
-
wr.out("()" false)
|
|
536
|
-
b_was_set = true
|
|
537
|
-
}
|
|
538
|
-
if (nn.value_type == RangerNodeType.Hash) {
|
|
539
|
-
wr.out(" = new " false)
|
|
540
|
-
this.writeTypeDef((unwrap p.nameNode) ctx wr)
|
|
541
|
-
wr.out("()" false)
|
|
542
|
-
b_was_set = true
|
|
543
|
-
}
|
|
544
|
-
if ((b_was_set == false) && (nn.hasFlag("optional"))) {
|
|
545
|
-
wr.out(" = null" false)
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
if ((p.ref_cnt == 0) && (p.is_class_variable == true)) {
|
|
550
|
-
wr.out(" /** note: unused */" false)
|
|
551
|
-
}
|
|
552
|
-
if ((p.ref_cnt == 0) && (p.is_class_variable == false)) {
|
|
553
|
-
wr.out(" **/ ;" true)
|
|
554
|
-
} {
|
|
555
|
-
wr.out(";" false)
|
|
556
|
-
wr.newline()
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
fn writeArgsDef:void (fnDesc:RangerAppFunctionDesc ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
561
|
-
for fnDesc.params arg:RangerAppParamDesc i {
|
|
562
|
-
if (i > 0) {
|
|
563
|
-
wr.out("," false)
|
|
564
|
-
}
|
|
565
|
-
wr.out(" final " false)
|
|
566
|
-
this.writeTypeDef((unwrap arg.nameNode) ctx wr)
|
|
567
|
-
wr.out(((" " + arg.compiledName) + " ") false)
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
fn CustomOperator:void (node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
572
|
-
def fc:CodeNode (node.getFirst())
|
|
573
|
-
def cmd:string fc.vref
|
|
574
|
-
if(cmd == "return") {
|
|
575
|
-
wr.newline()
|
|
576
|
-
if( (array_length node.children ) > 1 ) {
|
|
577
|
-
def value:CodeNode (node.getSecond())
|
|
578
|
-
|
|
579
|
-
; removed the optional special case
|
|
580
|
-
wr.out("return " false)
|
|
581
|
-
ctx.setInExpr()
|
|
582
|
-
this.WalkNode( value ctx wr )
|
|
583
|
-
ctx.unsetInExpr()
|
|
584
|
-
wr.out(";" true)
|
|
585
|
-
|
|
586
|
-
} {
|
|
587
|
-
wr.out("return;" true)
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
fn buildLambdaSignature:string (node:CodeNode) {
|
|
593
|
-
def exp node
|
|
594
|
-
def exp_s ""
|
|
595
|
-
def fc (exp.getFirst())
|
|
596
|
-
def args (exp.getSecond())
|
|
597
|
-
exp_s = exp_s + (fc.buildTypeSignature())
|
|
598
|
-
exp_s = exp_s + "("
|
|
599
|
-
for args.children arg:CodeNode i {
|
|
600
|
-
exp_s = exp_s + (arg.buildTypeSignature())
|
|
601
|
-
exp_s = exp_s + ","
|
|
602
|
-
}
|
|
603
|
-
exp_s = exp_s + ")"
|
|
604
|
-
return exp_s
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
fn CreateLambdaCall:void (node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
608
|
-
def fName:CodeNode (itemAt node.children 0)
|
|
609
|
-
def givenArgs:CodeNode (itemAt node.children 1)
|
|
610
|
-
|
|
611
|
-
def rv:CodeNode
|
|
612
|
-
def args:CodeNode
|
|
613
|
-
if( (!null? fName.expression_value) ) {
|
|
614
|
-
rv = ( itemAt fName.expression_value.children 0)
|
|
615
|
-
args = ( itemAt fName.expression_value.children 1)
|
|
616
|
-
} {
|
|
617
|
-
def param (ctx.getVariableDef(fName.vref))
|
|
618
|
-
rv = ( itemAt param.nameNode.expression_value.children 0)
|
|
619
|
-
args = ( itemAt param.nameNode.expression_value.children 1)
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
this.WalkNode(fName ctx wr)
|
|
623
|
-
|
|
624
|
-
wr.out(".run(" false)
|
|
625
|
-
ctx.setInExpr()
|
|
626
|
-
for args.children arg:CodeNode i {
|
|
627
|
-
def n:CodeNode (itemAt givenArgs.children i)
|
|
628
|
-
if (i > 0) {
|
|
629
|
-
wr.out(", " false)
|
|
630
|
-
}
|
|
631
|
-
; wr.out((arg.vref + " : ") false)
|
|
632
|
-
if(arg.value_type != RangerNodeType.NoType) {
|
|
633
|
-
this.WalkNode(n ctx wr)
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
ctx.unsetInExpr()
|
|
637
|
-
if ((ctx.expressionLevel()) == 0) {
|
|
638
|
-
wr.out(");" true)
|
|
639
|
-
} {
|
|
640
|
-
wr.out(")" false)
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
fn writeArrayLiteral( node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
645
|
-
wr.addImport("java.util.*")
|
|
646
|
-
wr.out("new ArrayList<" false)
|
|
647
|
-
wr.out( (this.getObjectTypeString2( node.eval_array_type ctx wr)) false )
|
|
648
|
-
wr.out(">(Arrays.asList( new " false)
|
|
649
|
-
wr.out( (this.getObjectTypeString2( node.eval_array_type ctx wr)) false )
|
|
650
|
-
wr.out("[] {" false)
|
|
651
|
-
node.children.forEach({
|
|
652
|
-
if( index > 0 ) {
|
|
653
|
-
wr.out(", " false)
|
|
654
|
-
}
|
|
655
|
-
this.WalkNode( item ctx wr )
|
|
656
|
-
})
|
|
657
|
-
wr.out("}))" false)
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
fn CreateLambda:void (node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter) {
|
|
661
|
-
def lambdaCtx (unwrap node.lambda_ctx)
|
|
662
|
-
def fnNode:CodeNode (itemAt node.children 0)
|
|
663
|
-
def args:CodeNode (itemAt node.children 1)
|
|
664
|
-
def body:CodeNode (itemAt node.children 2)
|
|
665
|
-
def sig (this.buildLambdaSignature( node))
|
|
666
|
-
def iface_name (this.getSignatureInterface(sig))
|
|
667
|
-
|
|
668
|
-
def package_name (ctx.getCompilerSetting("package"))
|
|
669
|
-
|
|
670
|
-
if( ( has iface_created iface_name) == false ) {
|
|
671
|
-
set iface_created iface_name true
|
|
672
|
-
def utilWr (wr.getFileWriter("./interfaces/" (iface_name + ".java")))
|
|
673
|
-
def iface_dir "."
|
|
674
|
-
if( this.isPackaged(ctx)) {
|
|
675
|
-
iface_dir = "./interfaces/"
|
|
676
|
-
}
|
|
677
|
-
def utilWr (wr.getFileWriter( iface_dir (iface_name + ".java")))
|
|
678
|
-
|
|
679
|
-
if( this.isPackaged(ctx)) {
|
|
680
|
-
def package_name (ctx.getCompilerSetting("package"))
|
|
681
|
-
if( (strlen package_name) > 0) {
|
|
682
|
-
utilWr.out("package " + package_name + ".interfaces;" , true)
|
|
683
|
-
utilWr.out("import " + package_name + ".*;" , true)
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
def importFork (utilWr.fork())
|
|
687
|
-
|
|
688
|
-
utilWr.out("public interface " + iface_name + " { " , true)
|
|
689
|
-
utilWr.indent(1)
|
|
690
|
-
utilWr.out("public " false)
|
|
691
|
-
this.writeTypeDef( fnNode ctx utilWr)
|
|
692
|
-
utilWr.out(" run(" false)
|
|
693
|
-
|
|
694
|
-
for args.children arg:CodeNode i {
|
|
695
|
-
if (i > 0) {
|
|
696
|
-
utilWr.out(", " false)
|
|
697
|
-
}
|
|
698
|
-
utilWr.out(" final " false)
|
|
699
|
-
this.writeTypeDef(arg lambdaCtx utilWr)
|
|
700
|
-
utilWr.out(" " false)
|
|
701
|
-
utilWr.out(arg.vref false)
|
|
702
|
-
|
|
703
|
-
}
|
|
704
|
-
utilWr.out(");" true)
|
|
705
|
-
utilWr.indent(-1)
|
|
706
|
-
utilWr.out("}" true)
|
|
707
|
-
|
|
708
|
-
forEach (utilWr.getImports ()) {
|
|
709
|
-
importFork.out (("import " + item + ";") , true)
|
|
710
|
-
}
|
|
711
|
-
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
wr.out("new " + iface_name + "() { " , true)
|
|
715
|
-
wr.indent(1)
|
|
716
|
-
wr.out("public " false)
|
|
717
|
-
this.writeTypeDef( fnNode ctx wr)
|
|
718
|
-
wr.out(" run(" false)
|
|
719
|
-
|
|
720
|
-
for args.children arg:CodeNode i {
|
|
721
|
-
if (i > 0) {
|
|
722
|
-
wr.out(", " false)
|
|
723
|
-
}
|
|
724
|
-
wr.out(" final " false)
|
|
725
|
-
this.writeTypeDef(arg lambdaCtx wr)
|
|
726
|
-
wr.out(" " false)
|
|
727
|
-
wr.out(arg.vref false)
|
|
728
|
-
|
|
729
|
-
}
|
|
730
|
-
wr.out(") {" true)
|
|
731
|
-
wr.indent(1)
|
|
732
|
-
lambdaCtx.restartExpressionLevel()
|
|
733
|
-
lambdaCtx.is_lambda = true
|
|
734
|
-
for body.children item:CodeNode i {
|
|
735
|
-
this.WalkNode(item lambdaCtx wr)
|
|
736
|
-
}
|
|
737
|
-
wr.newline()
|
|
738
|
-
for lambdaCtx.captured_variables cname:string i {
|
|
739
|
-
wr.out( "// captured var " + cname , true)
|
|
740
|
-
}
|
|
741
|
-
wr.indent(-1)
|
|
742
|
-
wr.out("}" true)
|
|
743
|
-
wr.indent(-1)
|
|
744
|
-
wr.out("}" false)
|
|
745
|
-
}
|
|
746
|
-
|
|
747
|
-
fn getCounters:TypeCounts (ctx:RangerAppWriterContext) {
|
|
748
|
-
def root ( ctx.getRoot() )
|
|
749
|
-
|
|
750
|
-
def counters ( root.counters )
|
|
751
|
-
|
|
752
|
-
if( counters.b_counted == false ) {
|
|
753
|
-
def list (keys root.definedClasses)
|
|
754
|
-
for list name:string i {
|
|
755
|
-
if( (indexOf name "operatorsOf") == 0 ) {
|
|
756
|
-
counters.operator_cnt = counters.operator_cnt + 1
|
|
757
|
-
}
|
|
758
|
-
if( (indexOf name "Map_") == 0 ) {
|
|
759
|
-
counters.immutable_cnt = counters.immutable_cnt + 1
|
|
760
|
-
}
|
|
761
|
-
if( (indexOf name "Vector_") == 0 ) {
|
|
762
|
-
counters.immutable_cnt = counters.immutable_cnt + 1
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
counters.b_counted = true
|
|
767
|
-
return counters
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
fn writeClass:void (node:CodeNode ctx:RangerAppWriterContext orig_wr:CodeWriter) {
|
|
771
|
-
def cl:RangerAppClassDesc node.clDesc
|
|
772
|
-
if (null? cl) {
|
|
773
|
-
return
|
|
774
|
-
}
|
|
775
|
-
def declaredVariable:[string:boolean]
|
|
776
|
-
if ( ( array_length cl.extends_classes ) > 0 ) {
|
|
777
|
-
for cl.extends_classes pName:string i {
|
|
778
|
-
def pC:RangerAppClassDesc (ctx.findClass(pName))
|
|
779
|
-
for pC.variables pvar:RangerAppParamDesc i {
|
|
780
|
-
set declaredVariable pvar.name true
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
def class_dir "."
|
|
786
|
-
def package_end ""
|
|
787
|
-
|
|
788
|
-
if( this.isPackaged(ctx)) {
|
|
789
|
-
if( (indexOf cl.name "operatorsOf") == 0) {
|
|
790
|
-
class_dir = "./operators/"
|
|
791
|
-
package_end = ".operators"
|
|
792
|
-
}
|
|
793
|
-
if( (indexOf cl.name "Map_") == 0) {
|
|
794
|
-
class_dir = "./immutables/"
|
|
795
|
-
package_end = ".immutables"
|
|
796
|
-
}
|
|
797
|
-
if( (indexOf cl.name "Vector_") == 0) {
|
|
798
|
-
class_dir = "./immutables/"
|
|
799
|
-
package_end = ".immutables"
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
def wr:CodeWriter (orig_wr.getFileWriter(class_dir (cl.name + ".java")))
|
|
803
|
-
def package_name (ctx.getCompilerSetting("package"))
|
|
804
|
-
|
|
805
|
-
if( this.isPackaged(ctx)) {
|
|
806
|
-
if( (strlen package_name) > 0) {
|
|
807
|
-
wr.out("package " + package_name + package_end + ";" , true)
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
def importFork:CodeWriter (wr.fork())
|
|
812
|
-
; importFork.addImport("org.json.JSONObject")
|
|
813
|
-
; importFork.addImport("org.json.JSONArray")
|
|
814
|
-
|
|
815
|
-
if( this.isPackaged(ctx)) {
|
|
816
|
-
def counters (this.getCounters(ctx))
|
|
817
|
-
if( counters.interface_cnt > 0 ) {
|
|
818
|
-
importFork.addImport( (package_name + ".interfaces.*"))
|
|
819
|
-
}
|
|
820
|
-
if( counters.immutable_cnt > 0 ) {
|
|
821
|
-
importFork.addImport( (package_name + ".immutables.*"))
|
|
822
|
-
}
|
|
823
|
-
if( counters.operator_cnt > 0 ) {
|
|
824
|
-
importFork.addImport( (package_name + ".operators.*"))
|
|
825
|
-
}
|
|
826
|
-
if( (strlen package_end) > 0 ) {
|
|
827
|
-
importFork.addImport( (package_name + ".*"))
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
for cl.capturedLocals dd@(lives):RangerAppParamDesc i {
|
|
832
|
-
if(dd.is_class_variable == false ) {
|
|
833
|
-
if ( dd.set_cnt > 0 ) {
|
|
834
|
-
|
|
835
|
-
if( ctx.hasCompilerFlag("allow-mutate")) {
|
|
836
|
-
|
|
837
|
-
} {
|
|
838
|
-
; ctx.addError( (unwrap dd.nameNode) "Mutating captured variable is not allowed")
|
|
839
|
-
; return
|
|
840
|
-
}
|
|
841
|
-
|
|
842
|
-
}
|
|
843
|
-
}
|
|
844
|
-
}
|
|
845
|
-
|
|
846
|
-
wr.out("" true)
|
|
847
|
-
wr.out(("public class " + cl.name) false)
|
|
848
|
-
if ( ( array_length cl.extends_classes ) > 0 ) {
|
|
849
|
-
wr.out(" extends " false)
|
|
850
|
-
for cl.extends_classes pName:string i {
|
|
851
|
-
wr.out(pName false)
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
wr.out( " { " true)
|
|
855
|
-
wr.indent(1)
|
|
856
|
-
wr.createTag("utilities")
|
|
857
|
-
for cl.variables pvar:RangerAppParamDesc i {
|
|
858
|
-
if( has declaredVariable pvar.name ) {
|
|
859
|
-
continue
|
|
860
|
-
}
|
|
861
|
-
wr.out("public " false)
|
|
862
|
-
this.writeVarDef( (unwrap pvar.node) ctx wr)
|
|
863
|
-
}
|
|
864
|
-
if cl.has_constructor {
|
|
865
|
-
def constr:RangerAppFunctionDesc cl.constructor_fn
|
|
866
|
-
wr.out("" true)
|
|
867
|
-
wr.out((cl.name + "(") false)
|
|
868
|
-
this.writeArgsDef( (unwrap constr) ctx wr)
|
|
869
|
-
wr.out(" ) {" true)
|
|
870
|
-
wr.indent(1)
|
|
871
|
-
wr.newline()
|
|
872
|
-
def subCtx:RangerAppWriterContext (unwrap constr.fnCtx)
|
|
873
|
-
subCtx.is_function = true
|
|
874
|
-
this.WalkNode( (unwrap constr.fnBody) subCtx wr)
|
|
875
|
-
wr.newline()
|
|
876
|
-
wr.indent(-1)
|
|
877
|
-
wr.out("}" true)
|
|
878
|
-
}
|
|
879
|
-
for cl.static_methods variant:RangerAppFunctionDesc i {
|
|
880
|
-
wr.out("" true)
|
|
881
|
-
if ( (variant.nameNode.hasFlag("main")) && (variant.nameNode.code.filename != (ctx.getRootFile()))) {
|
|
882
|
-
continue
|
|
883
|
-
}
|
|
884
|
-
if (variant.nameNode.hasFlag("main")) {
|
|
885
|
-
ctx.setCompilerSetting( 'mainclass' (cl.name) )
|
|
886
|
-
wr.out("public static void main(String [] args ) {" true)
|
|
887
|
-
} {
|
|
888
|
-
wr.out("public static " false)
|
|
889
|
-
this.writeTypeDef( (unwrap variant.nameNode) ctx wr)
|
|
890
|
-
wr.out(" " false)
|
|
891
|
-
wr.out((variant.compiledName + "(") false)
|
|
892
|
-
this.writeArgsDef(variant ctx wr)
|
|
893
|
-
wr.out(") {" true)
|
|
894
|
-
}
|
|
895
|
-
wr.indent(1)
|
|
896
|
-
wr.newline()
|
|
897
|
-
def subCtx:RangerAppWriterContext (unwrap variant.fnCtx)
|
|
898
|
-
subCtx.is_function = true
|
|
899
|
-
this.WalkNode( (unwrap variant.fnBody) subCtx wr)
|
|
900
|
-
wr.newline()
|
|
901
|
-
wr.indent(-1)
|
|
902
|
-
wr.out("}" true)
|
|
903
|
-
}
|
|
904
|
-
for cl.defined_variants fnVar:string i {
|
|
905
|
-
def mVs:RangerAppMethodVariants (get cl.method_variants fnVar)
|
|
906
|
-
for mVs.variants variant:RangerAppFunctionDesc i {
|
|
907
|
-
wr.out("" true)
|
|
908
|
-
wr.out("public " false)
|
|
909
|
-
this.writeTypeDef( (unwrap variant.nameNode) ctx wr)
|
|
910
|
-
wr.out(" " false)
|
|
911
|
-
wr.out((variant.compiledName + "(") false)
|
|
912
|
-
this.writeArgsDef(variant ctx wr)
|
|
913
|
-
wr.out(") {" true)
|
|
914
|
-
wr.indent(1)
|
|
915
|
-
wr.newline()
|
|
916
|
-
def subCtx:RangerAppWriterContext (unwrap variant.fnCtx)
|
|
917
|
-
subCtx.is_function = true
|
|
918
|
-
this.WalkNode( (unwrap variant.fnBody) subCtx wr)
|
|
919
|
-
wr.newline()
|
|
920
|
-
wr.indent(-1)
|
|
921
|
-
wr.out("}" true)
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
wr.indent(-1)
|
|
925
|
-
wr.out("}" true)
|
|
926
|
-
def import_list:[string] (wr.getImports())
|
|
927
|
-
for import_list codeStr:string i {
|
|
928
|
-
importFork.out(("import " + codeStr + ";") true)
|
|
929
|
-
}
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
fn CreateServices (parser:RangerFlowParser ctx:RangerAppWriterContext orig_wr:CodeWriter) {
|
|
933
|
-
|
|
934
|
-
return
|
|
935
|
-
|
|
936
|
-
if( (ctx.hasCompilerFlag("client")) || (ctx.hasCompilerSetting("client")) ) {
|
|
937
|
-
print "--> could create Client services for Java here..."
|
|
938
|
-
def root (ctx.getRoot())
|
|
939
|
-
root.appServices.forEach({
|
|
940
|
-
print " - service " + index
|
|
941
|
-
})
|
|
942
|
-
}
|
|
943
|
-
}
|
|
944
|
-
|
|
945
|
-
fn CreatePages (parser:RangerFlowParser ctx:RangerAppWriterContext orig_wr:CodeWriter) {
|
|
946
|
-
; TODO: the application container could be here
|
|
947
|
-
ctx.appPages.forEach({
|
|
948
|
-
this.CreatePage(parser item ctx orig_wr)
|
|
949
|
-
})
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
fn CreatePage (parser:RangerFlowParser node:CodeNode ctx:RangerAppWriterContext orig_wr:CodeWriter) {
|
|
953
|
-
def writer (new AndroidPageWriter)
|
|
954
|
-
writer.classWriter = this
|
|
955
|
-
writer.CreatePage( parser node ctx orig_wr )
|
|
956
|
-
}
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
}
|
|
961
|
-
|