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,388 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
class RangerParamEventHandler {
|
|
3
|
-
fn callback:void (param:RangerAppParamDesc) {
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
class RangerParamEventList {
|
|
8
|
-
def list:[RangerParamEventHandler]
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
class RangerParamEventMap {
|
|
12
|
-
def events:[string:RangerParamEventList]
|
|
13
|
-
|
|
14
|
-
fn clearAllEvents:void () {
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
fn addEvent:void (name:string e@(strong):RangerParamEventHandler) {
|
|
19
|
-
if( (has events name) == false ) {
|
|
20
|
-
set events name (new RangerParamEventList())
|
|
21
|
-
}
|
|
22
|
-
def list:RangerParamEventList (unwrap (get events name))
|
|
23
|
-
push list.list e
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
fn fireEvent:void (name:string from:RangerAppParamDesc) {
|
|
27
|
-
if( has events name ) {
|
|
28
|
-
def list:RangerParamEventList (unwrap (get events name))
|
|
29
|
-
for list.list ev:RangerParamEventHandler i {
|
|
30
|
-
ev.callback( from )
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
class RangerAppArrayValue {
|
|
37
|
-
def value_type:RangerNodeType RangerNodeType.NoType
|
|
38
|
-
def value_type_name:string ""
|
|
39
|
-
def values:[RangerAppValue]
|
|
40
|
-
}
|
|
41
|
-
class RangerAppHashValue {
|
|
42
|
-
def value_type:RangerNodeType RangerNodeType.NoType
|
|
43
|
-
def key_type_name:string ""
|
|
44
|
-
def value_type_name:string ""
|
|
45
|
-
def s_values:[string:RangerAppValue]
|
|
46
|
-
def i_values:[string:RangerAppValue]
|
|
47
|
-
def b_values:[string:RangerAppValue]
|
|
48
|
-
def d_values:[string:RangerAppValue]
|
|
49
|
-
}
|
|
50
|
-
class RangerAppValue {
|
|
51
|
-
def double_value:double 0.0
|
|
52
|
-
def string_value:string ""
|
|
53
|
-
def int_value:int 0
|
|
54
|
-
def boolean_value:boolean false
|
|
55
|
-
def arr:RangerAppArrayValue
|
|
56
|
-
def hash:RangerAppHashValue
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
class RangerRefForce {
|
|
60
|
-
def strength:int 0
|
|
61
|
-
def lifetime:int 1
|
|
62
|
-
def changer@(weak optional):CodeNode
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
class RangerAppParamDesc {
|
|
66
|
-
def name:string ""
|
|
67
|
-
def value:RangerAppValue
|
|
68
|
-
def compiledName:string ""
|
|
69
|
-
def debugString:string ""
|
|
70
|
-
def is_register false
|
|
71
|
-
def ref_cnt:int 0
|
|
72
|
-
def init_cnt:int 0
|
|
73
|
-
def set_cnt:int 0
|
|
74
|
-
def return_cnt:int 0
|
|
75
|
-
def prop_assign_cnt:int 0
|
|
76
|
-
def value_type:RangerNodeType RangerNodeType.NoType
|
|
77
|
-
def has_default:boolean false
|
|
78
|
-
def def_value:CodeNode
|
|
79
|
-
def default_value:RangerNodeValue
|
|
80
|
-
def isThis:boolean false
|
|
81
|
-
def classDesc:RangerAppClassDesc
|
|
82
|
-
def is_immutable false
|
|
83
|
-
def is_static false
|
|
84
|
-
def propertyClass@(weak):RangerAppClassDesc
|
|
85
|
-
def fnDesc:RangerAppFunctionDesc
|
|
86
|
-
def ownerHistory:[RangerRefForce]
|
|
87
|
-
def varType:RangerContextVarType RangerContextVarType.NoType
|
|
88
|
-
def refType:RangerNodeRefType RangerNodeRefType.NoType
|
|
89
|
-
def initRefType:RangerNodeRefType RangerNodeRefType.NoType
|
|
90
|
-
def isParam:boolean
|
|
91
|
-
def paramIndex:int 0
|
|
92
|
-
def is_optional:boolean false
|
|
93
|
-
def is_mutating:boolean false
|
|
94
|
-
def is_set:boolean false
|
|
95
|
-
def is_class_variable:boolean false
|
|
96
|
-
def is_captured:boolean false
|
|
97
|
-
def node@(weak):CodeNode
|
|
98
|
-
def nameNode@(weak):CodeNode
|
|
99
|
-
def fnBody@(weak):CodeNode
|
|
100
|
-
def params:[RangerAppParamDesc]
|
|
101
|
-
def return_value:RangerAppParamDesc
|
|
102
|
-
def description:string ""
|
|
103
|
-
def git_doc:string ""
|
|
104
|
-
def has_events:boolean false
|
|
105
|
-
def eMap:RangerParamEventMap
|
|
106
|
-
|
|
107
|
-
fn addEvent:void (name:string e@(strong lives):RangerParamEventHandler) {
|
|
108
|
-
if( has_events == false ) {
|
|
109
|
-
eMap = (new RangerParamEventMap())
|
|
110
|
-
has_events = true
|
|
111
|
-
}
|
|
112
|
-
eMap.addEvent(name e)
|
|
113
|
-
}
|
|
114
|
-
fn changeStrength:void (newStrength:int lifeTime:int changer:CodeNode) {
|
|
115
|
-
def entry:RangerRefForce (new RangerRefForce ())
|
|
116
|
-
entry.strength = newStrength
|
|
117
|
-
entry.lifetime = lifeTime
|
|
118
|
-
entry.changer = changer
|
|
119
|
-
push ownerHistory entry
|
|
120
|
-
}
|
|
121
|
-
fn isFunction:boolean () {
|
|
122
|
-
return false
|
|
123
|
-
}
|
|
124
|
-
fn isProperty:boolean () {
|
|
125
|
-
return true
|
|
126
|
-
}
|
|
127
|
-
fn isClass:boolean () {
|
|
128
|
-
return false
|
|
129
|
-
}
|
|
130
|
-
fn isOperator:boolean () {
|
|
131
|
-
return false
|
|
132
|
-
}
|
|
133
|
-
fn doesInherit:boolean () {
|
|
134
|
-
return false
|
|
135
|
-
}
|
|
136
|
-
fn isAllocatedType:boolean () {
|
|
137
|
-
if (!null? nameNode) {
|
|
138
|
-
if (nameNode.eval_type != RangerNodeType.NoType) {
|
|
139
|
-
if (nameNode.eval_type == RangerNodeType.Array) {
|
|
140
|
-
return true
|
|
141
|
-
}
|
|
142
|
-
if (nameNode.eval_type == RangerNodeType.Hash) {
|
|
143
|
-
return true
|
|
144
|
-
}
|
|
145
|
-
if ((((nameNode.eval_type == RangerNodeType.CharBuffer)
|
|
146
|
-
|| (nameNode.eval_type == RangerNodeType.Char) || (nameNode.eval_type == RangerNodeType.String) || (nameNode.eval_type == RangerNodeType.Double)) || (nameNode.eval_type == RangerNodeType.Boolean)) || (nameNode.eval_type == RangerNodeType.Integer)) {
|
|
147
|
-
return false
|
|
148
|
-
}
|
|
149
|
-
if (nameNode.eval_type == RangerNodeType.Enum) {
|
|
150
|
-
return false
|
|
151
|
-
}
|
|
152
|
-
return true
|
|
153
|
-
}
|
|
154
|
-
if (nameNode.value_type == RangerNodeType.VRef) {
|
|
155
|
-
|
|
156
|
-
if (false == (nameNode.isPrimitive())) {
|
|
157
|
-
return true
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
if (nameNode.value_type == RangerNodeType.Array) {
|
|
161
|
-
return true
|
|
162
|
-
}
|
|
163
|
-
if (nameNode.value_type == RangerNodeType.Hash) {
|
|
164
|
-
return true
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return false
|
|
168
|
-
}
|
|
169
|
-
fn moveRefTo:void (nodeToMove:CodeNode target:RangerAppParamDesc ctx:RangerAppWriterContext) {
|
|
170
|
-
|
|
171
|
-
def b_disable_errors ( (ctx.hasCompilerFlag('refcnt')) == false )
|
|
172
|
-
|
|
173
|
-
if nodeToMove.ref_change_done {
|
|
174
|
-
return
|
|
175
|
-
}
|
|
176
|
-
if (false == (target.isAllocatedType())) {
|
|
177
|
-
return
|
|
178
|
-
}
|
|
179
|
-
if (false == (this.isAllocatedType())) {
|
|
180
|
-
return
|
|
181
|
-
}
|
|
182
|
-
nodeToMove.ref_change_done = true
|
|
183
|
-
def other_s:int (target.getStrength())
|
|
184
|
-
def my_s:int (this.getStrength())
|
|
185
|
-
def my_lifetime:int (this.getLifetime())
|
|
186
|
-
def other_lifetime:int (target.getLifetime())
|
|
187
|
-
def a_lives:boolean false
|
|
188
|
-
def b_lives:boolean false
|
|
189
|
-
def tmp_var:boolean (nameNode.hasFlag("temp"))
|
|
190
|
-
if (!null? target.nameNode) {
|
|
191
|
-
if (target.nameNode.hasFlag("lives")) {
|
|
192
|
-
my_lifetime = 2
|
|
193
|
-
b_lives = true
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
if (!null? nameNode) {
|
|
197
|
-
if (nameNode.hasFlag("lives")) {
|
|
198
|
-
my_lifetime = 2
|
|
199
|
-
a_lives = true
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
if (other_s > 0) {
|
|
203
|
-
if (my_s == 1) {
|
|
204
|
-
def lt:int my_lifetime
|
|
205
|
-
if (other_lifetime > my_lifetime) {
|
|
206
|
-
lt = other_lifetime
|
|
207
|
-
}
|
|
208
|
-
this.changeStrength(0 lt nodeToMove)
|
|
209
|
-
} {
|
|
210
|
-
if (my_s == 0) {
|
|
211
|
-
if (tmp_var == false) {
|
|
212
|
-
if(! b_disable_errors) {
|
|
213
|
-
ctx.addError(nodeToMove "Can not move a weak reference to a strong target." )
|
|
214
|
-
print "can not move weak refs to strong target:"
|
|
215
|
-
this.debugRefChanges()
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
} {
|
|
219
|
-
if(! b_disable_errors) {
|
|
220
|
-
ctx.addError(nodeToMove ('Can not move immutable reference to a strong target, evald type ' + nameNode.eval_type_name))
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
} {
|
|
225
|
-
if (a_lives || b_lives) {
|
|
226
|
-
} {
|
|
227
|
-
if ((my_lifetime < other_lifetime) && (return_cnt == 0)) {
|
|
228
|
-
if ((nameNode.hasFlag("returnvalue")) == false) {
|
|
229
|
-
if(! b_disable_errors) {
|
|
230
|
-
ctx.addError(nodeToMove ('Can not create a weak reference if target has longer lifetime than original, current lifetime == ' + my_lifetime))
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
fn originalStrength:int () {
|
|
238
|
-
def len:int (array_length ownerHistory)
|
|
239
|
-
if (len > 0) {
|
|
240
|
-
def firstEntry:RangerRefForce (itemAt ownerHistory 0)
|
|
241
|
-
return firstEntry.strength
|
|
242
|
-
}
|
|
243
|
-
return 1
|
|
244
|
-
}
|
|
245
|
-
fn getLifetime:int () {
|
|
246
|
-
def len:int (array_length ownerHistory)
|
|
247
|
-
if (len > 0) {
|
|
248
|
-
def lastEntry:RangerRefForce (itemAt ownerHistory (len - 1))
|
|
249
|
-
return lastEntry.lifetime
|
|
250
|
-
}
|
|
251
|
-
return 1
|
|
252
|
-
}
|
|
253
|
-
fn getStrength:int () {
|
|
254
|
-
def len:int (array_length ownerHistory)
|
|
255
|
-
if (len > 0) {
|
|
256
|
-
def lastEntry:RangerRefForce (itemAt ownerHistory (len - 1))
|
|
257
|
-
return lastEntry.strength
|
|
258
|
-
}
|
|
259
|
-
return 1
|
|
260
|
-
}
|
|
261
|
-
fn debugRefChanges:void () {
|
|
262
|
-
print (("variable " + name) + " ref history : ")
|
|
263
|
-
for ownerHistory h:RangerRefForce i {
|
|
264
|
-
print (((" => change to " + h.strength) + " by ") + (h.changer.getCode()))
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
fn pointsToObject:boolean (ctx:RangerAppWriterContext) {
|
|
268
|
-
if (!null? nameNode) {
|
|
269
|
-
def is_primitive:boolean false
|
|
270
|
-
switch nameNode.array_type {
|
|
271
|
-
case "string" {
|
|
272
|
-
is_primitive = true
|
|
273
|
-
}
|
|
274
|
-
case "int" {
|
|
275
|
-
is_primitive = true
|
|
276
|
-
}
|
|
277
|
-
case "boolean" {
|
|
278
|
-
is_primitive = true
|
|
279
|
-
}
|
|
280
|
-
case "double" {
|
|
281
|
-
is_primitive = true
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
if is_primitive {
|
|
285
|
-
return false
|
|
286
|
-
}
|
|
287
|
-
if ((nameNode.value_type == RangerNodeType.Array) || (nameNode.value_type == RangerNodeType.Hash)) {
|
|
288
|
-
def is_object:boolean true
|
|
289
|
-
switch nameNode.array_type {
|
|
290
|
-
case "string" {
|
|
291
|
-
is_object = false
|
|
292
|
-
}
|
|
293
|
-
case "int" {
|
|
294
|
-
is_object = false
|
|
295
|
-
}
|
|
296
|
-
case "boolean" {
|
|
297
|
-
is_object = false
|
|
298
|
-
}
|
|
299
|
-
case "double" {
|
|
300
|
-
is_object = false
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
return is_object
|
|
304
|
-
}
|
|
305
|
-
if (nameNode.value_type == RangerNodeType.VRef) {
|
|
306
|
-
def is_object:boolean true
|
|
307
|
-
switch nameNode.type_name {
|
|
308
|
-
case "string" {
|
|
309
|
-
is_object = false
|
|
310
|
-
}
|
|
311
|
-
case "int" {
|
|
312
|
-
is_object = false
|
|
313
|
-
}
|
|
314
|
-
case "boolean" {
|
|
315
|
-
is_object = false
|
|
316
|
-
}
|
|
317
|
-
case "double" {
|
|
318
|
-
is_object = false
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
if (ctx.isEnumDefined(nameNode.type_name)) {
|
|
322
|
-
return false
|
|
323
|
-
}
|
|
324
|
-
return is_object
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
return false
|
|
328
|
-
}
|
|
329
|
-
fn isObject:boolean () {
|
|
330
|
-
if (!null? nameNode) {
|
|
331
|
-
if (nameNode.value_type == RangerNodeType.VRef) {
|
|
332
|
-
if (false == (nameNode.isPrimitive())) {
|
|
333
|
-
return true
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
return false
|
|
338
|
-
}
|
|
339
|
-
fn isArray:boolean () {
|
|
340
|
-
if (!null? nameNode) {
|
|
341
|
-
if (nameNode.value_type == RangerNodeType.Array) {
|
|
342
|
-
return true
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
return false
|
|
346
|
-
}
|
|
347
|
-
fn isHash:boolean () {
|
|
348
|
-
if (!null? nameNode) {
|
|
349
|
-
if (nameNode.value_type == RangerNodeType.Hash) {
|
|
350
|
-
return true
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
return false
|
|
354
|
-
}
|
|
355
|
-
fn isPrimitive:boolean () {
|
|
356
|
-
if (!null? nameNode) {
|
|
357
|
-
return (nameNode.isPrimitive())
|
|
358
|
-
}
|
|
359
|
-
return false
|
|
360
|
-
}
|
|
361
|
-
fn getRefTypeName:string () {
|
|
362
|
-
switch refType {
|
|
363
|
-
case RangerNodeRefType.NoType {
|
|
364
|
-
return "NoType"
|
|
365
|
-
}
|
|
366
|
-
case RangerNodeRefType.Weak {
|
|
367
|
-
return "Weak"
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
return ""
|
|
371
|
-
}
|
|
372
|
-
fn getVarTypeName:string () {
|
|
373
|
-
switch refType {
|
|
374
|
-
case RangerContextVarType.NoType {
|
|
375
|
-
return "NoType"
|
|
376
|
-
}
|
|
377
|
-
case RangerContextVarType.This {
|
|
378
|
-
return "This"
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
return ""
|
|
382
|
-
}
|
|
383
|
-
fn getTypeName:string () {
|
|
384
|
-
def s:string nameNode.type_name
|
|
385
|
-
return s
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
|