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
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
; immutable map type
|
|
4
|
+
trait Map @params( K T S ) {
|
|
5
|
+
def elements@(weak):[K:T]
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
trait Vector @params( T S ) {
|
|
10
|
+
|
|
11
|
+
def start:int 0
|
|
12
|
+
def cardinality 3
|
|
13
|
+
def end:int 0
|
|
14
|
+
def elements@(weak):[T]
|
|
15
|
+
def parent@(weak):S
|
|
16
|
+
|
|
17
|
+
; inserting a new element inside the array
|
|
18
|
+
; you can re-use the arrays but the index ranges will change
|
|
19
|
+
|
|
20
|
+
fn localCopy:S () {
|
|
21
|
+
def obj (new S)
|
|
22
|
+
obj.start = start
|
|
23
|
+
obj.end = end
|
|
24
|
+
obj.parent = this.parent
|
|
25
|
+
obj.cardinality = cardinality
|
|
26
|
+
obj.elements = elements
|
|
27
|
+
return obj
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
fn set:S (idx:int item:T) {
|
|
31
|
+
|
|
32
|
+
if( idx >= start ) {
|
|
33
|
+
def res (this.localCopy())
|
|
34
|
+
res.elements = (make _:[T] (res.cardinality) item)
|
|
35
|
+
for elements e@(lives):T i {
|
|
36
|
+
if ( (res.start + i) != idx ) {
|
|
37
|
+
set res.elements i e
|
|
38
|
+
} {
|
|
39
|
+
set res.elements i item
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return res
|
|
43
|
+
}
|
|
44
|
+
def root (this.localCopy())
|
|
45
|
+
def res root
|
|
46
|
+
|
|
47
|
+
def p@(weak):S parent
|
|
48
|
+
while( (!null? p) && (idx < p.start) ) {
|
|
49
|
+
def newSlice@(lives) (p.localCopy())
|
|
50
|
+
res.parent = newSlice
|
|
51
|
+
res = newSlice
|
|
52
|
+
if(!null? p.parent) {
|
|
53
|
+
p = p.parent
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
def newSlice@(lives) (p.localCopy())
|
|
57
|
+
newSlice.elements = (make _:[T] (newSlice.cardinality) item)
|
|
58
|
+
for p.elements e@(lives):T i {
|
|
59
|
+
set newSlice.elements i e
|
|
60
|
+
}
|
|
61
|
+
set newSlice.elements (idx - newSlice.start) item
|
|
62
|
+
res.parent = newSlice
|
|
63
|
+
return root
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
fn insert:S (idx:int item:T) {
|
|
67
|
+
if( idx >= start ) {
|
|
68
|
+
def res (this.localCopy())
|
|
69
|
+
def use_card cardinality
|
|
70
|
+
if( ( array_length res.elements) >= (use_card - 1) ) {
|
|
71
|
+
use_card = ( array_length res.elements) + 1
|
|
72
|
+
}
|
|
73
|
+
res.elements = (make _:[T] (use_card) item)
|
|
74
|
+
for elements e@(lives):T i {
|
|
75
|
+
if ( res.start + i < idx ) {
|
|
76
|
+
set res.elements i e
|
|
77
|
+
} {
|
|
78
|
+
if( idx == ( res.start + i )) {
|
|
79
|
+
set res.elements i item
|
|
80
|
+
set res.elements (i + 1) e
|
|
81
|
+
} {
|
|
82
|
+
set res.elements (i + 1) e
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if( (idx - start) >= (array_length elements)) {
|
|
87
|
+
set res.elements (idx - start) item
|
|
88
|
+
}
|
|
89
|
+
res.start = start
|
|
90
|
+
res.end = end + 1
|
|
91
|
+
res.cardinality = use_card
|
|
92
|
+
return res
|
|
93
|
+
}
|
|
94
|
+
def root (this.localCopy())
|
|
95
|
+
def res root
|
|
96
|
+
res.start = start + 1
|
|
97
|
+
res.end = end + 1
|
|
98
|
+
def p@(weak):S parent
|
|
99
|
+
while( (!null? p) && (idx < p.start) ) {
|
|
100
|
+
def newSlice@(lives) (p.localCopy())
|
|
101
|
+
newSlice.start = newSlice.start + 1
|
|
102
|
+
newSlice.end = newSlice.end + 1
|
|
103
|
+
res.parent = newSlice
|
|
104
|
+
res = newSlice
|
|
105
|
+
if(!null? p.parent) {
|
|
106
|
+
p = p.parent
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
def newSlice@(lives) (p.localCopy())
|
|
111
|
+
def use_card newSlice.cardinality
|
|
112
|
+
if( ( array_length p.elements) >= (use_card - 1) ) {
|
|
113
|
+
use_card = ( array_length p.elements) + 1
|
|
114
|
+
}
|
|
115
|
+
newSlice.elements = (make _:[T] (use_card) item)
|
|
116
|
+
for p.elements e@(lives):T i {
|
|
117
|
+
if ( newSlice.start + i < idx ) {
|
|
118
|
+
set newSlice.elements i e
|
|
119
|
+
} {
|
|
120
|
+
if( idx == ( newSlice.start + i )) {
|
|
121
|
+
set newSlice.elements i item
|
|
122
|
+
set newSlice.elements (i + 1) e
|
|
123
|
+
} {
|
|
124
|
+
set newSlice.elements (i + 1) e
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
newSlice.end = newSlice.end + 1
|
|
130
|
+
newSlice.cardinality = use_card
|
|
131
|
+
if ( (idx - newSlice.start) >= p.cardinality ) {
|
|
132
|
+
newSlice.end = idx + 1
|
|
133
|
+
}
|
|
134
|
+
newSlice.parent = p.parent
|
|
135
|
+
res.parent = newSlice
|
|
136
|
+
return root
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
fn get:T (idx:int) {
|
|
140
|
+
if( idx < 0 ) {
|
|
141
|
+
; should be runtime error here...
|
|
142
|
+
return (itemAt elements 0)
|
|
143
|
+
}
|
|
144
|
+
if( idx >= start && idx < end ) {
|
|
145
|
+
return (itemAt elements (idx - start))
|
|
146
|
+
}
|
|
147
|
+
def p@(weak):S parent
|
|
148
|
+
while( (!null? p) && (idx < p.start) ) {
|
|
149
|
+
p = p.parent
|
|
150
|
+
}
|
|
151
|
+
if(!null? p ) {
|
|
152
|
+
return (itemAt p.elements (idx - p.start))
|
|
153
|
+
}
|
|
154
|
+
return (itemAt elements 0)
|
|
155
|
+
}
|
|
156
|
+
fn add:S (item:T) {
|
|
157
|
+
if((end - start) >= cardinality) {
|
|
158
|
+
def res (new S)
|
|
159
|
+
res.start = this.end
|
|
160
|
+
res.end = (this.end + 1)
|
|
161
|
+
res.parent = this
|
|
162
|
+
res.cardinality = (cardinality + 1)
|
|
163
|
+
res.elements = (make _:[T] (res.cardinality) item)
|
|
164
|
+
set res.elements 0 item
|
|
165
|
+
return res
|
|
166
|
+
}
|
|
167
|
+
def res (new S)
|
|
168
|
+
res.elements = (make _:[T] (cardinality) item)
|
|
169
|
+
for elements e@(lives):T i {
|
|
170
|
+
set res.elements i e
|
|
171
|
+
}
|
|
172
|
+
set res.elements (end - start) item
|
|
173
|
+
res.parent = parent
|
|
174
|
+
res.start = start
|
|
175
|
+
res.end = end + 1
|
|
176
|
+
res.cardinality = cardinality
|
|
177
|
+
return res
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
fn count:int () {
|
|
181
|
+
return end
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
; TODO: faster version ....
|
|
185
|
+
fn map:S (cb:(_:T (item:T)) ) {
|
|
186
|
+
def len (this.count())
|
|
187
|
+
def res:S (new S)
|
|
188
|
+
def cnt (this.count())
|
|
189
|
+
def i 0
|
|
190
|
+
while( i < cnt ) {
|
|
191
|
+
def item (this.get(i))
|
|
192
|
+
; set res i (cb(item))
|
|
193
|
+
def new_value (cb(item))
|
|
194
|
+
res = (res.add(new_value))
|
|
195
|
+
i = i + 1
|
|
196
|
+
}
|
|
197
|
+
return res
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
fn mapper:S (cb:(_:T (item:T)) ) {
|
|
201
|
+
def len (this.count())
|
|
202
|
+
def res:S (new S)
|
|
203
|
+
def cnt (this.count())
|
|
204
|
+
def i 0
|
|
205
|
+
while( i < cnt ) {
|
|
206
|
+
def item (this.get(i))
|
|
207
|
+
; set res i (cb(item))
|
|
208
|
+
def new_value (cb(item))
|
|
209
|
+
res = (res.add(new_value))
|
|
210
|
+
i = i + 1
|
|
211
|
+
}
|
|
212
|
+
return res
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
operator type:Vector all {
|
|
219
|
+
|
|
220
|
+
; couple of trait test functions for now...
|
|
221
|
+
fn hello@(weak):S () {
|
|
222
|
+
print "immutable says hi! my size is " + (self.count())
|
|
223
|
+
return self
|
|
224
|
+
}
|
|
225
|
+
fn hello@(weak):S (msg:string) {
|
|
226
|
+
print "immutable sends message " + msg + " AND my size is " + (self.count())
|
|
227
|
+
return self
|
|
228
|
+
}
|
|
229
|
+
; fn get:T (idx:int) {
|
|
230
|
+
fn itemAt:T (idx:int) {
|
|
231
|
+
; def val:T (self.get(idx))
|
|
232
|
+
def val (self.get(idx))
|
|
233
|
+
return val
|
|
234
|
+
}
|
|
235
|
+
fn imm_itemAt:T (idx:int) {
|
|
236
|
+
; def val:T (self.get(idx))
|
|
237
|
+
def val (self.get(idx))
|
|
238
|
+
return val
|
|
239
|
+
}
|
|
240
|
+
; fn push:S () {}
|
|
241
|
+
fn push:S (item:T) {
|
|
242
|
+
return (self.add(item))
|
|
243
|
+
}
|
|
244
|
+
fn +:S (item:T) {
|
|
245
|
+
return (self.add(item))
|
|
246
|
+
}
|
|
247
|
+
fn last:T () {
|
|
248
|
+
; def len (self.count())
|
|
249
|
+
; def last_idx ((self.count()) - 1)
|
|
250
|
+
; return (self.get( last_idx ))
|
|
251
|
+
return (itemAt self ((self.count()) - 1) )
|
|
252
|
+
}
|
|
253
|
+
fn array_length:int () {
|
|
254
|
+
return (self.count())
|
|
255
|
+
}
|
|
256
|
+
fn length:int () {
|
|
257
|
+
return (self.count())
|
|
258
|
+
}
|
|
259
|
+
fn forEach:void (cb:(_:void (item:T))) {
|
|
260
|
+
def cnt (self.count())
|
|
261
|
+
def i 0
|
|
262
|
+
while( i < cnt ) {
|
|
263
|
+
def item (itemAt self i)
|
|
264
|
+
cb(item)
|
|
265
|
+
i = i + 1
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
fn map:S ( cb:(_:T (item:T)) ) {
|
|
270
|
+
def len (self.count())
|
|
271
|
+
def res (new S)
|
|
272
|
+
def cnt (self.count())
|
|
273
|
+
def i 0
|
|
274
|
+
while( i < cnt ) {
|
|
275
|
+
def item (itemAt self i)
|
|
276
|
+
; set res i (cb(item)
|
|
277
|
+
def value (cb(item))
|
|
278
|
+
res = res.add(value)
|
|
279
|
+
i = i + 1
|
|
280
|
+
}
|
|
281
|
+
return res
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
; TODO: faster version ....
|
|
285
|
+
fn map:[K] (cb:(_:K (item:T)) to@(noeval):[K] ) {
|
|
286
|
+
def len (self.count())
|
|
287
|
+
def res:[K]
|
|
288
|
+
def cnt (self.count())
|
|
289
|
+
def i 0
|
|
290
|
+
while( i < cnt ) {
|
|
291
|
+
def item (itemAt self i)
|
|
292
|
+
; set res i (cb(item))
|
|
293
|
+
push res (cb(item))
|
|
294
|
+
i = i + 1
|
|
295
|
+
}
|
|
296
|
+
return res
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
operator type:Map all {
|
|
303
|
+
fn imm_keys:[K] () {
|
|
304
|
+
return (keys self.elements)
|
|
305
|
+
}
|
|
306
|
+
fn keys:[K] () {
|
|
307
|
+
return (keys self.elements)
|
|
308
|
+
}
|
|
309
|
+
fn get@(optional):T (key:K) {
|
|
310
|
+
return (get self.elements key)
|
|
311
|
+
}
|
|
312
|
+
fn imm_get@(optional):T (key:K) {
|
|
313
|
+
return (get self.elements key)
|
|
314
|
+
}
|
|
315
|
+
fn remap:S () {
|
|
316
|
+
def obj (new S)
|
|
317
|
+
return obj
|
|
318
|
+
}
|
|
319
|
+
fn imm_has:boolean (key:K) {
|
|
320
|
+
return (has self.elements key)
|
|
321
|
+
}
|
|
322
|
+
fn has:boolean (key:K) {
|
|
323
|
+
return (has self.elements key)
|
|
324
|
+
}
|
|
325
|
+
fn imm_set:S (key:K value:T) {
|
|
326
|
+
def c (new S)
|
|
327
|
+
def keys ( keys self.elements)
|
|
328
|
+
for keys k:string i {
|
|
329
|
+
if(k==key) {
|
|
330
|
+
|
|
331
|
+
} {
|
|
332
|
+
set c.elements k (unwrap (get self.elements k))
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
set c.elements key value
|
|
336
|
+
return c
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
operator type:Map all {
|
|
341
|
+
fn set:S (key:K value:T) {
|
|
342
|
+
def c (new S)
|
|
343
|
+
def keys ( keys self.elements)
|
|
344
|
+
for keys k:string i {
|
|
345
|
+
if(k==key) {
|
|
346
|
+
|
|
347
|
+
} {
|
|
348
|
+
set c.elements k (unwrap (get self.elements k))
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
set c.elements key value
|
|
352
|
+
return c
|
|
353
|
+
}
|
|
354
|
+
fn forEach@(weak):S ( cb:(_:void (value:T key:K)) ) {
|
|
355
|
+
def keys (keys self.elements)
|
|
356
|
+
for keys key:K i {
|
|
357
|
+
cb( (unwrap (get self.elements key)) key )
|
|
358
|
+
}
|
|
359
|
+
return self
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
systemclass IndexedDBDatabase {
|
|
3
|
+
es6 IDBDatabase
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
; window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB
|
|
7
|
+
|
|
8
|
+
operator type:void es6 {
|
|
9
|
+
|
|
10
|
+
fn open_idb:IDBDatabase (name:sting version:int) ('(window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB).open('(e 1)', '(e 2)')')
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
fn schema:SQLSchemaBuilder (name:string version:int) (`lf.schema.create(`(e 1)`,`(e 2)`)`)
|
|
15
|
+
fn create_table:SQLSchemaTable ( s:SQLSchemaBuilder name:string ) ( (e 1) `.createTable(`(e 2)`)`)
|
|
16
|
+
|
|
17
|
+
fn add_int (t:SQLSchemaTable fieldName:string ) ( (e 1) `.addColumn(`(e 2)`, lf.Type.INTEGER)`)
|
|
18
|
+
fn add_string (t:SQLSchemaTable fieldName:string ) ( (e 1) `.addColumn(`(e 2)`, lf.Type.STRING)`)
|
|
19
|
+
fn add_datetime (t:SQLSchemaTable fieldName:string ) ( (e 1) `.addColumn(`(e 2)`, lf.Type.DATE_TIME)`)
|
|
20
|
+
fn add_boolean (t:SQLSchemaTable fieldName:string ) ((e 1) `.addColumn(`(e 2)`, lf.Type.BOOLEAN)`)
|
|
21
|
+
fn set_primary_key (t:SQLSchemaTable fieldName:string) ((e 1) `.addPrimaryKey([`(e 2)`])`)
|
|
22
|
+
fn create_index (t:SQLSchemaTable indexName:string fields:[string]) ( (e 1) `.addIndex(`(e 2)`,`(e 3)`,false,lf.Order.DESC)`)
|
|
23
|
+
|
|
24
|
+
fn connect@(async):SQLDatabase (b:SQLSchemaBuilder) ('await ' (e 1) '.connect()')
|
|
25
|
+
fn getSchema:DBSchema (db:SQLDatabase) ( (e 1) '.getSchema()')
|
|
26
|
+
fn getTable:DBTable (db:DBSchema name:string) ( (e 1) '.table(' (e 2) ')')
|
|
27
|
+
|
|
28
|
+
fn addRow:DBInsertableRow (tbl:DBTable row:JSONDataObject) ( (e 1) '.createRow(' (e 2) ')')
|
|
29
|
+
fn insert@(async):void (db:SQLDatabase t:DBTable rows:[DBInsertableRow]) ('await (' (e 1) '.insertOrReplace().into(' (e 2) ').values(' (e 3) ').exec())')
|
|
30
|
+
; fn query@(async):[JSONDataObject] (db:SQLDatabase t:DBTable id:int ) ('await (' (e 1) '.select().from(' (e 2) ').where(' (e 2) '.id.eq(' (e 3)')).exec())')
|
|
31
|
+
fn select@(async):[JSONDataObject] (db:SQLDatabase t:DBTable id:int ) ('await (' (e 1) '.select().from(' (e 2) ').where(' (e 2) '.id.eq(' (e 3)')).exec())')
|
|
32
|
+
}
|
|
@@ -10,15 +10,19 @@
|
|
|
10
10
|
systemclass JSONDataObject {
|
|
11
11
|
es6 Object
|
|
12
12
|
java7 JSONObject ( (imp "org.json.JSONObject") )
|
|
13
|
+
kotlin JSONObject
|
|
13
14
|
go "map[string]interface{}"
|
|
14
15
|
swift3 '[String:Any]'
|
|
16
|
+
swift6 '[String:Any]'
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
systemclass JSONArrayObject {
|
|
18
|
-
es6
|
|
20
|
+
es6 JSONArrayObject2
|
|
19
21
|
java7 JSONArray ( (imp "org.json.JSONArray") )
|
|
22
|
+
kotlin JSONArray
|
|
20
23
|
go "[]interface{}"
|
|
21
24
|
swift3 '[Any]'
|
|
25
|
+
swift6 '[Any]'
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
systemclass JSONKeyValue {
|
|
@@ -28,8 +32,10 @@ systemclass JSONKeyValue {
|
|
|
28
32
|
systemclass JSONValueUnion {
|
|
29
33
|
es6 Object
|
|
30
34
|
java7 Object
|
|
35
|
+
kotlin Any?
|
|
31
36
|
go "interface{}"
|
|
32
37
|
swift3 Any
|
|
38
|
+
swift6 Any
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
systemunion JSONValueUnion ( JSONDataObject JSONArrayObject string int double boolean )
|
|
@@ -79,8 +85,17 @@ operators {
|
|
|
79
85
|
"(typeof (" (e 1) " [" (e 2) "]) != \"string\" ) ? undefined : " (e 1) " [" (e 2) "] " nl
|
|
80
86
|
)
|
|
81
87
|
swift3 ( (e 1) '[' (e 2) '] as? String ')
|
|
88
|
+
swift6 ( (e 1) '[' (e 2) '] as? String ')
|
|
82
89
|
ranger ("(getStr " (e 1) " " (e 2) ")")
|
|
83
90
|
java7 ( (e 1) ".isNull( " (e 2) " ) ? null : " (e 1) ".optString(" (e 2) ") " )
|
|
91
|
+
kotlin ( "(if (" (e 1) ".isNull(" (e 2) ")) null else " (e 1) ".optString(" (e 2) "))"
|
|
92
|
+
(create_polyfill "
|
|
93
|
+
typealias JSONObject = org.json.JSONObject
|
|
94
|
+
typealias JSONArray = org.json.JSONArray
|
|
95
|
+
typealias JSONDataObject = org.json.JSONObject
|
|
96
|
+
typealias JSONArrayObject = org.json.JSONArray
|
|
97
|
+
")
|
|
98
|
+
)
|
|
84
99
|
go ( "r_get_opt_json_string(" (e 1) ", " (e 2) ")"
|
|
85
100
|
(create_polyfill "
|
|
86
101
|
func r_get_opt_json_string( data map[string]interface{}, key string ) *GoNullable {
|
|
@@ -111,8 +126,10 @@ func r_get_opt_json_string( data map[string]interface{}, key string ) *GoNullabl
|
|
|
111
126
|
"isNaN( parseInt(" (e 1) " [" (e 2) "]) ) ? undefined : parseInt(" (e 1) " [" (e 2) "]) " nl
|
|
112
127
|
)
|
|
113
128
|
swift3 ( (e 1) '[' (e 2) '] as? Int ')
|
|
129
|
+
swift6 ( (e 1) '[' (e 2) '] as? Int ')
|
|
114
130
|
ranger( "(getInt " (e 1 )" " (e 2)")")
|
|
115
131
|
java7 ( (e 1) ".isNull( " (e 2) " ) ? null : " (e 1) ".optInt(" (e 2) ") " )
|
|
132
|
+
kotlin ( "(if (" (e 1) ".isNull(" (e 2) ")) null else " (e 1) ".optInt(" (e 2) "))" )
|
|
116
133
|
go ( "r_get_opt_json_int(" (e 1) ", " (e 2 ) ")"
|
|
117
134
|
(create_polyfill "
|
|
118
135
|
func r_get_opt_json_int( data map[string]interface{}, key string ) *GoNullable {
|
|
@@ -142,8 +159,10 @@ func r_get_opt_json_int( data map[string]interface{}, key string ) *GoNullable
|
|
|
142
159
|
"isNaN( parseFloat(" (e 1) " [" (e 2) "]) ) ? undefined : parseFloat(" (e 1) " [" (e 2) "]) " nl
|
|
143
160
|
)
|
|
144
161
|
swift3 ( (e 1) '[' (e 2) '] as? Double ')
|
|
162
|
+
swift6 ( (e 1) '[' (e 2) '] as? Double ')
|
|
145
163
|
ranger( "(getDouble " (e 1 )" " (e 2)")")
|
|
146
164
|
java7 ( (e 1) ".isNull( " (e 2) " ) ? null : " (e 1) ".optDouble(" (e 2) ") " )
|
|
165
|
+
kotlin ( "(if (" (e 1) ".isNull(" (e 2) ")) null else " (e 1) ".optDouble(" (e 2) "))" )
|
|
147
166
|
go ( "r_get_opt_json_double(" (e 1) ", " (e 2) ")"
|
|
148
167
|
(create_polyfill "
|
|
149
168
|
func r_get_opt_json_double( data map[string]interface{}, key string ) *GoNullable {
|
|
@@ -173,8 +192,10 @@ func r_get_opt_json_double( data map[string]interface{}, key string ) *GoNullabl
|
|
|
173
192
|
"typeof(" (e 1) " [" (e 2) "]) === \"undefined\" ? undefined :(" (e 1) " [" (e 2) "]) "
|
|
174
193
|
)
|
|
175
194
|
swift3 ( (e 1) '[' (e 2) '] as? Bool ')
|
|
195
|
+
swift6 ( (e 1) '[' (e 2) '] as? Bool ')
|
|
176
196
|
ranger( "(getBoolean " (e 1 )" " (e 2)")")
|
|
177
197
|
java7 ( (e 1) ".isNull( " (e 2) " ) ? null : " (e 1) ".optBoolean(" (e 2) ") " )
|
|
198
|
+
kotlin ( "(if (" (e 1) ".isNull(" (e 2) ")) null else " (e 1) ".optBoolean(" (e 2) "))" )
|
|
178
199
|
go ( "r_get_opt_json_bool(" (e 1) ", " (e 2) ")"
|
|
179
200
|
(create_polyfill "
|
|
180
201
|
func r_get_opt_json_bool( data map[string]interface{}, key string ) *GoNullable {
|
|
@@ -203,6 +224,7 @@ func r_get_opt_json_bool( data map[string]interface{}, key string ) *GoNullable
|
|
|
203
224
|
"(" (e 1) "[" (e 2) "] instanceof Object ) ? " (e 1) " [" (e 2) "] : undefined "
|
|
204
225
|
)
|
|
205
226
|
swift3 ( (e 1) '[' (e 2) '] as? [String:Any] ')
|
|
227
|
+
swift6 ( (e 1) '[' (e 2) '] as? [String:Any] ')
|
|
206
228
|
ranger ( '(getObject ' (e 1) ' ' (e 2) ')')
|
|
207
229
|
java7 ( "__getJSONObj(" (e 1) ", " (e 2) " )" (imp 'org.json.JSONException')
|
|
208
230
|
|
|
@@ -221,6 +243,7 @@ static JSONObject __getJSONObj(JSONObject o, String item)
|
|
|
221
243
|
')
|
|
222
244
|
|
|
223
245
|
)
|
|
246
|
+
kotlin ( "(if (" (e 1) ".isNull(" (e 2) ")) null else " (e 1) ".getJSONObject(" (e 2) "))" )
|
|
224
247
|
go ( "r_get_opt_json_obj(" (e 1) ", " (e 2) ")"
|
|
225
248
|
(create_polyfill "
|
|
226
249
|
func r_get_opt_json_obj( data map[string]interface{}, key string ) *GoNullable {
|
|
@@ -251,8 +274,10 @@ func r_get_opt_json_obj( data map[string]interface{}, key string ) *GoNullable
|
|
|
251
274
|
"(" (e 1) "[" (e 2) "] instanceof Array ) ? " (e 1) " [" (e 2) "] : undefined "
|
|
252
275
|
)
|
|
253
276
|
swift3 ( (e 1) '[' (e 2) '] as? [Any] ')
|
|
277
|
+
swift6 ( (e 1) '[' (e 2) '] as? [Any] ')
|
|
254
278
|
ranger ("(getArray " (e 1) " " (e 2) ")")
|
|
255
279
|
java7 ( (e 1) ".isNull( " (e 2) " ) ? null : " (e 1) ".getJSONArray(" (e 2) ") " )
|
|
280
|
+
kotlin ( "(if (" (e 1) ".isNull(" (e 2) ")) null else " (e 1) ".getJSONArray(" (e 2) "))" )
|
|
256
281
|
go ( "r_get_opt_array(" (e 1) ", " (e 2) ")"
|
|
257
282
|
(create_polyfill '
|
|
258
283
|
func r_get_opt_array( data map[string]interface{}, key string ) *GoNullable {
|
|
@@ -361,6 +386,7 @@ static Object __getJSONValue(JSONArray o, Integer item)
|
|
|
361
386
|
|
|
362
387
|
)
|
|
363
388
|
swift3 ( (e 1) "[" (e 2) "]")
|
|
389
|
+
kotlin ( (e 1) ".get(" (e 2) ")")
|
|
364
390
|
go ( (e 1) "[" (e 2) "]")
|
|
365
391
|
php ( (e 1) "[" (e 2) "]")
|
|
366
392
|
}
|
|
@@ -371,7 +397,9 @@ static Object __getJSONValue(JSONArray o, Integer item)
|
|
|
371
397
|
ranger ("(array_length " (e 1) ")")
|
|
372
398
|
es6 ( (e 1) ".length")
|
|
373
399
|
java7 ( (e 1) ".length()" )
|
|
400
|
+
kotlin ( (e 1) ".length()" )
|
|
374
401
|
swift3 ( (e 1) ".count")
|
|
402
|
+
swift6 ( (e 1) ".count")
|
|
375
403
|
go( "int64(len(" (e 1) "))" )
|
|
376
404
|
php ( "count(" (e 1) ")" )
|
|
377
405
|
}
|
|
@@ -382,8 +410,62 @@ static Object __getJSONValue(JSONArray o, Integer item)
|
|
|
382
410
|
ranger ( "(set " (e 1) " " (e 2) " " (e 3) " )")
|
|
383
411
|
es6 ( (e 1) "[" (e 2)"] = " (e 3) ";")
|
|
384
412
|
java7 ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
413
|
+
kotlin ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
414
|
+
go ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
415
|
+
swift3 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
416
|
+
swift6 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
417
|
+
php ( (e 1) "[" (e 2) "] = " (e 3) ";" )
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
set _@(moves@( 3 1 ) ):void (e@(mutates):JSONDataObject key:string value:string) {
|
|
422
|
+
templates {
|
|
423
|
+
ranger ( "(set " (e 1) " " (e 2) " " (e 3) " )")
|
|
424
|
+
es6 ( (e 1) "[" (e 2)"] = " (e 3) ";")
|
|
425
|
+
java7 ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
426
|
+
kotlin ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
427
|
+
go ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
428
|
+
swift3 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
429
|
+
swift6 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
430
|
+
php ( (e 1) "[" (e 2) "] = " (e 3) ";" )
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
set _@(moves@( 3 1 ) ):void (e@(mutates):JSONDataObject key:string value:int) {
|
|
435
|
+
templates {
|
|
436
|
+
ranger ( "(set " (e 1) " " (e 2) " " (e 3) " )")
|
|
437
|
+
es6 ( (e 1) "[" (e 2)"] = " (e 3) ";")
|
|
438
|
+
java7 ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
439
|
+
kotlin ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
440
|
+
go ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
441
|
+
swift3 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
442
|
+
swift6 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
443
|
+
php ( (e 1) "[" (e 2) "] = " (e 3) ";" )
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
set _@(moves@( 3 1 ) ):void (e@(mutates):JSONDataObject key:string value:double) {
|
|
448
|
+
templates {
|
|
449
|
+
ranger ( "(set " (e 1) " " (e 2) " " (e 3) " )")
|
|
450
|
+
es6 ( (e 1) "[" (e 2)"] = " (e 3) ";")
|
|
451
|
+
java7 ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
452
|
+
kotlin ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
385
453
|
go ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
386
454
|
swift3 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
455
|
+
swift6 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
456
|
+
php ( (e 1) "[" (e 2) "] = " (e 3) ";" )
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
set _@(moves@( 3 1 ) ):void (e@(mutates):JSONDataObject key:string value:boolean) {
|
|
461
|
+
templates {
|
|
462
|
+
ranger ( "(set " (e 1) " " (e 2) " " (e 3) " )")
|
|
463
|
+
es6 ( (e 1) "[" (e 2)"] = " (e 3) ";")
|
|
464
|
+
java7 ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
465
|
+
kotlin ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
466
|
+
go ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
467
|
+
swift3 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
468
|
+
swift6 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
387
469
|
php ( (e 1) "[" (e 2) "] = " (e 3) ";" )
|
|
388
470
|
}
|
|
389
471
|
}
|
|
@@ -393,8 +475,10 @@ static Object __getJSONValue(JSONArray o, Integer item)
|
|
|
393
475
|
ranger ( "(set " (e 1) " " (e 2) " " (e 3) " )")
|
|
394
476
|
es6 ( (e 1) "[" (e 2)"] = " (e 3) ";")
|
|
395
477
|
java7 ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
478
|
+
kotlin ( (e 1) ".put(" (e 2)" , " (e 3) ");")
|
|
396
479
|
go ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
397
480
|
swift3 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
481
|
+
swift6 ( (e 1) "[" (e 2) "] = " (e 3) )
|
|
398
482
|
php ( (e 1) "[" (e 2) "] = " (e 3) ";" )
|
|
399
483
|
}
|
|
400
484
|
}
|
|
@@ -406,7 +490,9 @@ static Object __getJSONValue(JSONArray o, Integer item)
|
|
|
406
490
|
"JSON.parse(" (e 1) ")"
|
|
407
491
|
)
|
|
408
492
|
swift3 ( 'try JSONSerialization.jsonObject(with: ' (e 1) ', options:[]) as! [String:Any]' (imp 'Foundation') )
|
|
493
|
+
swift6 ( 'try JSONSerialization.jsonObject(with: ' (e 1) ', options:[]) as! [String:Any]' (imp 'Foundation') )
|
|
409
494
|
java7 ("new JSONObject(" (e 1) ")" (imp "org.json.JSONObject") (plugin 'maven' ( (dep 'org.json' 'json' '20171018' ) ) ))
|
|
495
|
+
kotlin ("JSONObject(" (e 1) ")")
|
|
410
496
|
go ( "__r_json_to_interface(" (e 1) ")" (imp "encoding/json")
|
|
411
497
|
|
|
412
498
|
(create_polyfill "
|
|
@@ -448,8 +534,16 @@ function r_json_to_array($str) {
|
|
|
448
534
|
i nl '} catch {' nl I
|
|
449
535
|
'return ""'
|
|
450
536
|
i nl '}'
|
|
451
|
-
'}()' (imp 'Foundation') )
|
|
537
|
+
i nl '}()' (imp 'Foundation') )
|
|
538
|
+
swift6 ( '{ () -> String in ' nl I
|
|
539
|
+
'do {' nl I
|
|
540
|
+
'return String(data:try JSONSerialization.data(withJSONObject: ' (e 1) ', options:[]), encoding:.utf8)!'
|
|
541
|
+
i nl '} catch {' nl I
|
|
542
|
+
'return ""'
|
|
543
|
+
i nl '}'
|
|
544
|
+
i nl '}()' (imp 'Foundation') )
|
|
452
545
|
java7 ( (e 1) ".toString()" )
|
|
546
|
+
kotlin ( (e 1) ".toString()" )
|
|
453
547
|
go( "__toJSONData(" (e 1) ")" (imp "encoding/json")
|
|
454
548
|
(create_polyfill "
|
|
455
549
|
func __toJSONData ( data interface{} ) string {
|
|
@@ -469,7 +563,9 @@ func __toJSONData ( data interface{} ) string {
|
|
|
469
563
|
"JSON.stringify(" (e 1) ")"
|
|
470
564
|
)
|
|
471
565
|
swift3 ( 'String(data:try JSONSerialization.data(with: ' (e 1) ', options:[], encoding:.utf8)!)' (imp 'Foundation') )
|
|
566
|
+
swift6 ( 'String(data:try JSONSerialization.data(with: ' (e 1) ', options:[], encoding:.utf8)!)' (imp 'Foundation') )
|
|
472
567
|
java7 ( (e 1) ".toString()" )
|
|
568
|
+
kotlin ( (e 1) ".toString()" )
|
|
473
569
|
go( "__toJSONData(" (e 1) ")" (imp "encoding/json")
|
|
474
570
|
(create_polyfill "
|
|
475
571
|
func __toJSONData ( data interface{} ) string {
|
|
@@ -487,7 +583,9 @@ func __toJSONData ( data interface{} ) string {
|
|
|
487
583
|
ranger ( "(push " (e 1 ) " " (e 2) " )")
|
|
488
584
|
es6 ( (e 1) ".push(" (e 2) ")")
|
|
489
585
|
java7 ( (e 1) ".put(" (e 2) ");")
|
|
586
|
+
kotlin ( (e 1) ".put(" (e 2) ");")
|
|
490
587
|
swift3 ( (e 1) ".append(" (e 2) ");")
|
|
588
|
+
swift6 ( (e 1) ".append(" (e 2) ");")
|
|
491
589
|
go( (e 1) " = append(" (e 1) "," (e 2) ")")
|
|
492
590
|
php ( "array_push(" (e 1) ", " (e 2) ");")
|
|
493
591
|
}
|
|
@@ -496,8 +594,10 @@ func __toJSONData ( data interface{} ) string {
|
|
|
496
594
|
templates {
|
|
497
595
|
es6 ("[]")
|
|
498
596
|
swift3 ( '[Any]()' )
|
|
597
|
+
swift6 ( '[Any]()' )
|
|
499
598
|
ranger ("(json_array )")
|
|
500
599
|
java7 ("new JSONArray()" (imp "org.json.JSONArray") (plugin 'maven' ( (dep 'org.json' 'json' '20171018' ) ) ))
|
|
600
|
+
kotlin ("JSONArray()")
|
|
501
601
|
go ( "make([]interface{},0)" )
|
|
502
602
|
php ( "array()" )
|
|
503
603
|
}
|
|
@@ -506,8 +606,10 @@ func __toJSONData ( data interface{} ) string {
|
|
|
506
606
|
templates {
|
|
507
607
|
es6 ("{}")
|
|
508
608
|
swift3 ( '[String:Any]()' )
|
|
609
|
+
swift6 ( '[String:Any]()' )
|
|
509
610
|
ranger ("(json_object )")
|
|
510
611
|
java7 ("new JSONObject()" (imp "org.json.JSONObject") (plugin 'maven' ( (dep 'org.json' 'json' '20171018' ) ) ))
|
|
612
|
+
kotlin ("JSONObject()")
|
|
511
613
|
go ( "make(map[string]interface{})" )
|
|
512
614
|
php ( "array()")
|
|
513
615
|
}
|
|
@@ -516,6 +618,7 @@ func __toJSONData ( data interface{} ) string {
|
|
|
516
618
|
templates {
|
|
517
619
|
es6 ("[" ( repeat_from 1 ( (block 1) ) ) "]")
|
|
518
620
|
swift3 ("[" ( repeat_from 1 ( (block 1) ) ) "]")
|
|
621
|
+
swift6 ("[" ( repeat_from 1 ( (block 1) ) ) "]")
|
|
519
622
|
ranger ("(json_array " ( repeat 1 ( (block 1) ) ) ")")
|
|
520
623
|
java7 ("new JSONArray" (imp "org.json.JSONArray") (plugin 'maven' ( (dep 'org.json' 'json' '20171018' ) ) ))
|
|
521
624
|
go ( "make([]interface{},0)" )
|
|
@@ -596,4 +699,4 @@ func __toJSONData ( data interface{} ) string {
|
|
|
596
699
|
ranger ("(json.attr " (e 1) " " (e 2) ")")
|
|
597
700
|
}
|
|
598
701
|
}
|
|
599
|
-
}
|
|
702
|
+
}
|