ranger-compiler 2.1.69 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +103 -0
- package/README.md +991 -96
- 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/{bin/output.js → dist/rgrc.js} +15377 -7935
- package/dist/stdops.rgr +168 -0
- package/package.json +196 -38
- 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/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 -800
- 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 -1042
- 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/api.js.map +0 -1
- package/dist/bin/compiler.d.ts +0 -1638
- package/dist/bin/compiler.js +0 -32444
- package/dist/bin/compiler.js.map +0 -1
- 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/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,24 +0,0 @@
|
|
|
1
|
-
import java.util.Optional;
|
|
2
|
-
|
|
3
|
-
class NodeEvalState {
|
|
4
|
-
public Optional<RangerAppWriterContext> ctx = Optional.empty() /** note: unused */;
|
|
5
|
-
public boolean is_running = false /** note: unused */;
|
|
6
|
-
public int child_index = -1 /** note: unused */;
|
|
7
|
-
public int cmd_index = -1 /** note: unused */;
|
|
8
|
-
public boolean is_ready = false /** note: unused */;
|
|
9
|
-
public boolean is_waiting = false /** note: unused */;
|
|
10
|
-
public boolean exit_after = false /** note: unused */;
|
|
11
|
-
public boolean expand_args = false /** note: unused */;
|
|
12
|
-
public boolean ask_expand = false /** note: unused */;
|
|
13
|
-
public boolean eval_rest = false /** note: unused */;
|
|
14
|
-
public int exec_cnt = 0 /** note: unused */;
|
|
15
|
-
public boolean b_debugger = false /** note: unused */;
|
|
16
|
-
public boolean b_top_node = false /** note: unused */;
|
|
17
|
-
public boolean ask_eval = false /** note: unused */;
|
|
18
|
-
public boolean param_eval_on = false /** note: unused */;
|
|
19
|
-
public int eval_index = -1 /** note: unused */;
|
|
20
|
-
public int eval_end_index = -1 /** note: unused */;
|
|
21
|
-
public int ask_eval_start = 0 /** note: unused */;
|
|
22
|
-
public int ask_eval_end = 0 /** note: unused */;
|
|
23
|
-
public Optional<CodeNode> evaluating_cmd = Optional.empty() /** note: unused */;
|
|
24
|
-
}
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
import java.util.*;
|
|
2
|
-
import java.util.Optional;
|
|
3
|
-
import java.io.*;
|
|
4
|
-
|
|
5
|
-
class RangerAppClassDesc extends RangerAppParamDesc {
|
|
6
|
-
public boolean is_system = false;
|
|
7
|
-
public HashMap<String,String> systemNames = new HashMap<String,String>();
|
|
8
|
-
public Optional<CodeNode> systemInfo = Optional.empty() /** note: unused */;
|
|
9
|
-
public boolean is_interface = false;
|
|
10
|
-
public boolean is_system_union = false;
|
|
11
|
-
public boolean is_template = false /** note: unused */;
|
|
12
|
-
public boolean is_serialized = false;
|
|
13
|
-
public boolean is_trait = false;
|
|
14
|
-
public Optional<CodeNode> generic_params = Optional.empty() /** note: unused */;
|
|
15
|
-
public Optional<RangerAppWriterContext> ctx = Optional.empty();
|
|
16
|
-
public ArrayList<RangerAppParamDesc> variables = new ArrayList<RangerAppParamDesc>();
|
|
17
|
-
public ArrayList<RangerAppParamDesc> capturedLocals = new ArrayList<RangerAppParamDesc>();
|
|
18
|
-
public ArrayList<RangerAppFunctionDesc> methods = new ArrayList<RangerAppFunctionDesc>();
|
|
19
|
-
public HashMap<String,Boolean> defined_methods = new HashMap<String,Boolean>();
|
|
20
|
-
public ArrayList<RangerAppFunctionDesc> static_methods = new ArrayList<RangerAppFunctionDesc>();
|
|
21
|
-
public HashMap<String,Boolean> defined_static_methods = new HashMap<String,Boolean>();
|
|
22
|
-
public ArrayList<String> defined_variants = new ArrayList<String>();
|
|
23
|
-
public HashMap<String,RangerAppMethodVariants> method_variants = new HashMap<String,RangerAppMethodVariants>();
|
|
24
|
-
public boolean has_constructor = false;
|
|
25
|
-
public Optional<CodeNode> constructor_node = Optional.empty();
|
|
26
|
-
public Optional<RangerAppFunctionDesc> constructor_fn = Optional.empty();
|
|
27
|
-
public boolean has_destructor = false /** note: unused */;
|
|
28
|
-
public Optional<CodeNode> destructor_node = Optional.empty() /** note: unused */;
|
|
29
|
-
public Optional<RangerAppFunctionDesc> destructor_fn = Optional.empty() /** note: unused */;
|
|
30
|
-
public ArrayList<String> extends_classes = new ArrayList<String>();
|
|
31
|
-
public ArrayList<String> implements_interfaces = new ArrayList<String>();
|
|
32
|
-
public ArrayList<String> consumes_traits = new ArrayList<String>();
|
|
33
|
-
public ArrayList<String> is_union_of = new ArrayList<String>();
|
|
34
|
-
public Optional<CodeNode> classNode = Optional.empty();
|
|
35
|
-
public ArrayList<CodeWriter> contr_writers = new ArrayList<CodeWriter>() /** note: unused */;
|
|
36
|
-
public boolean is_inherited = false;
|
|
37
|
-
|
|
38
|
-
public boolean isClass() {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public boolean isProperty() {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public boolean doesInherit() {
|
|
47
|
-
return is_inherited;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public boolean isSameOrParentClass( String class_name , RangerAppWriterContext ctx ) {
|
|
51
|
-
if ( ctx.isPrimitiveType(class_name) ) {
|
|
52
|
-
if ( (is_union_of.indexOf(class_name)) >= 0 ) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
if ( class_name.equals(name) ) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
if ( (extends_classes.indexOf(class_name)) >= 0 ) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
if ( (consumes_traits.indexOf(class_name)) >= 0 ) {
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
if ( (implements_interfaces.indexOf(class_name)) >= 0 ) {
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
if ( (is_union_of.indexOf(class_name)) >= 0 ) {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
for ( int i = 0; i < extends_classes.size(); i++) {
|
|
73
|
-
String c_name = extends_classes.get(i);
|
|
74
|
-
final RangerAppClassDesc c = ctx.findClass(c_name);
|
|
75
|
-
if ( c.isSameOrParentClass(class_name, ctx) ) {
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
for ( int i_1 = 0; i_1 < consumes_traits.size(); i_1++) {
|
|
80
|
-
String c_name_1 = consumes_traits.get(i_1);
|
|
81
|
-
final RangerAppClassDesc c_1 = ctx.findClass(c_name_1);
|
|
82
|
-
if ( c_1.isSameOrParentClass(class_name, ctx) ) {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
for ( int i_2 = 0; i_2 < implements_interfaces.size(); i_2++) {
|
|
87
|
-
String i_name = implements_interfaces.get(i_2);
|
|
88
|
-
final RangerAppClassDesc c_2 = ctx.findClass(i_name);
|
|
89
|
-
if ( c_2.isSameOrParentClass(class_name, ctx) ) {
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
for ( int i_3 = 0; i_3 < is_union_of.size(); i_3++) {
|
|
94
|
-
String i_name_1 = is_union_of.get(i_3);
|
|
95
|
-
if ( this.isSameOrParentClass(i_name_1, ctx) ) {
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
if ( ctx.isDefinedClass(i_name_1) ) {
|
|
99
|
-
final RangerAppClassDesc c_3 = ctx.findClass(i_name_1);
|
|
100
|
-
if ( c_3.isSameOrParentClass(class_name, ctx) ) {
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
} else {
|
|
104
|
-
System.out.println(String.valueOf( "did not find union class " + i_name_1 ) );
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
public boolean hasOwnMethod( String m_name ) {
|
|
111
|
-
if ( defined_methods.containsKey(m_name) ) {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
public boolean hasMethod( String m_name ) {
|
|
118
|
-
if ( defined_methods.containsKey(m_name) ) {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
for ( int i = 0; i < extends_classes.size(); i++) {
|
|
122
|
-
String cname = extends_classes.get(i);
|
|
123
|
-
final RangerAppClassDesc cDesc = ctx.get().findClass(cname);
|
|
124
|
-
if ( cDesc.hasMethod(m_name) ) {
|
|
125
|
-
return cDesc.hasMethod(m_name);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
public Optional<RangerAppFunctionDesc> findMethod( String f_name ) {
|
|
132
|
-
Optional<RangerAppFunctionDesc> res = Optional.empty();
|
|
133
|
-
for ( int i = 0; i < methods.size(); i++) {
|
|
134
|
-
RangerAppFunctionDesc m = methods.get(i);
|
|
135
|
-
if ( m.name.equals(f_name) ) {
|
|
136
|
-
res = Optional.of(m);
|
|
137
|
-
return Optional.ofNullable((res.isPresent() ? (RangerAppFunctionDesc)res.get() : null ) );
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
for ( int i_1 = 0; i_1 < extends_classes.size(); i_1++) {
|
|
141
|
-
String cname = extends_classes.get(i_1);
|
|
142
|
-
final RangerAppClassDesc cDesc = ctx.get().findClass(cname);
|
|
143
|
-
if ( cDesc.hasMethod(f_name) ) {
|
|
144
|
-
return cDesc.findMethod(f_name);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return Optional.ofNullable((res.isPresent() ? (RangerAppFunctionDesc)res.get() : null ) );
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
public boolean hasStaticMethod( String m_name ) {
|
|
151
|
-
return defined_static_methods.containsKey(m_name);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
public Optional<RangerAppFunctionDesc> findStaticMethod( String f_name ) {
|
|
155
|
-
Optional<RangerAppFunctionDesc> e = Optional.empty();
|
|
156
|
-
for ( int i = 0; i < static_methods.size(); i++) {
|
|
157
|
-
RangerAppFunctionDesc m = static_methods.get(i);
|
|
158
|
-
if ( m.name.equals(f_name) ) {
|
|
159
|
-
e = Optional.of(m);
|
|
160
|
-
return Optional.ofNullable((e.isPresent() ? (RangerAppFunctionDesc)e.get() : null ) );
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
for ( int i_1 = 0; i_1 < extends_classes.size(); i_1++) {
|
|
164
|
-
String cname = extends_classes.get(i_1);
|
|
165
|
-
final RangerAppClassDesc cDesc = ctx.get().findClass(cname);
|
|
166
|
-
if ( cDesc.hasStaticMethod(f_name) ) {
|
|
167
|
-
return cDesc.findStaticMethod(f_name);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return Optional.ofNullable((e.isPresent() ? (RangerAppFunctionDesc)e.get() : null ) );
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
public Optional<RangerAppParamDesc> findVariable( String f_name ) {
|
|
174
|
-
Optional<RangerAppParamDesc> e = Optional.empty();
|
|
175
|
-
for ( int i = 0; i < variables.size(); i++) {
|
|
176
|
-
RangerAppParamDesc m = variables.get(i);
|
|
177
|
-
if ( m.name.equals(f_name) ) {
|
|
178
|
-
e = Optional.of(m);
|
|
179
|
-
return Optional.ofNullable((e.isPresent() ? (RangerAppParamDesc)e.get() : null ) );
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
for ( int i_1 = 0; i_1 < extends_classes.size(); i_1++) {
|
|
183
|
-
String cname = extends_classes.get(i_1);
|
|
184
|
-
final RangerAppClassDesc cDesc = ctx.get().findClass(cname);
|
|
185
|
-
return cDesc.findVariable(f_name);
|
|
186
|
-
}
|
|
187
|
-
return Optional.ofNullable((e.isPresent() ? (RangerAppParamDesc)e.get() : null ) );
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
public void addParentClass( String p_name ) {
|
|
191
|
-
extends_classes.add(p_name);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
public void addVariable( RangerAppParamDesc desc ) {
|
|
195
|
-
variables.add(desc);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
public void addMethod( RangerAppFunctionDesc desc ) {
|
|
199
|
-
defined_methods.put(desc.name, true);
|
|
200
|
-
methods.add(desc);
|
|
201
|
-
final Optional<RangerAppMethodVariants> defVs = Optional.ofNullable(method_variants.get(desc.name));
|
|
202
|
-
if ( !defVs.isPresent() ) {
|
|
203
|
-
final RangerAppMethodVariants new_v = new RangerAppMethodVariants();
|
|
204
|
-
method_variants.put(desc.name, new_v);
|
|
205
|
-
defined_variants.add(desc.name);
|
|
206
|
-
new_v.variants.add(desc);
|
|
207
|
-
} else {
|
|
208
|
-
final RangerAppMethodVariants new_v2 = defVs.get();
|
|
209
|
-
new_v2.variants.add(desc);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
public void addStaticMethod( RangerAppFunctionDesc desc ) {
|
|
214
|
-
defined_static_methods.put(desc.name, true);
|
|
215
|
-
static_methods.add(desc);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import java.util.*;
|
|
2
|
-
import java.util.Optional;
|
|
3
|
-
|
|
4
|
-
class RangerAppEnum {
|
|
5
|
-
public String name = "" /** note: unused */;
|
|
6
|
-
public int cnt = 0;
|
|
7
|
-
public HashMap<String,Integer> values = new HashMap<String,Integer>();
|
|
8
|
-
public Optional<CodeNode> node = Optional.empty() /** note: unused */;
|
|
9
|
-
|
|
10
|
-
public void add( String n ) {
|
|
11
|
-
values.put(n, cnt);
|
|
12
|
-
cnt = cnt + 1;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import java.util.Optional;
|
|
2
|
-
import java.util.*;
|
|
3
|
-
|
|
4
|
-
class RangerAppFunctionDesc extends RangerAppParamDesc {
|
|
5
|
-
public Optional<CodeNode> fnBody = Optional.empty();
|
|
6
|
-
public ArrayList<RangerAppParamDesc> params = new ArrayList<RangerAppParamDesc>();
|
|
7
|
-
public Optional<RangerAppParamDesc> return_value = Optional.empty() /** note: unused */;
|
|
8
|
-
public boolean is_method = false /** note: unused */;
|
|
9
|
-
public boolean is_static = false;
|
|
10
|
-
public Optional<RangerAppClassDesc> container_class = Optional.empty() /** note: unused */;
|
|
11
|
-
public Optional<RangerAppWriterContext> fnCtx = Optional.empty();
|
|
12
|
-
|
|
13
|
-
public boolean isClass() {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public boolean isProperty() {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import java.util.*;
|
|
2
|
-
|
|
3
|
-
class RangerAppHashValue {
|
|
4
|
-
public int value_type = 0 /** note: unused */;
|
|
5
|
-
public String key_type_name = "" /** note: unused */;
|
|
6
|
-
public String value_type_name = "" /** note: unused */;
|
|
7
|
-
public HashMap<String,RangerAppValue> s_values = new HashMap<String,RangerAppValue>() /** note: unused */;
|
|
8
|
-
public HashMap<Integer,RangerAppValue> i_values = new HashMap<Integer,RangerAppValue>() /** note: unused */;
|
|
9
|
-
public HashMap<Boolean,RangerAppValue> b_values = new HashMap<Boolean,RangerAppValue>() /** note: unused */;
|
|
10
|
-
public HashMap<Double,RangerAppValue> d_values = new HashMap<Double,RangerAppValue>() /** note: unused */;
|
|
11
|
-
}
|
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
import java.util.Optional;
|
|
2
|
-
import java.util.*;
|
|
3
|
-
import java.io.*;
|
|
4
|
-
|
|
5
|
-
class RangerAppParamDesc {
|
|
6
|
-
public String name = "";
|
|
7
|
-
public Optional<RangerAppValue> value = Optional.empty() /** note: unused */;
|
|
8
|
-
public String compiledName = "";
|
|
9
|
-
public String debugString = "";
|
|
10
|
-
public int ref_cnt = 0;
|
|
11
|
-
public int init_cnt = 0;
|
|
12
|
-
public int set_cnt = 0;
|
|
13
|
-
public int return_cnt = 0;
|
|
14
|
-
public int prop_assign_cnt = 0 /** note: unused */;
|
|
15
|
-
public int value_type = 0;
|
|
16
|
-
public boolean has_default = false /** note: unused */;
|
|
17
|
-
public Optional<CodeNode> def_value = Optional.empty();
|
|
18
|
-
public Optional<RangerNodeValue> default_value = Optional.empty() /** note: unused */;
|
|
19
|
-
public boolean isThis = false /** note: unused */;
|
|
20
|
-
public Optional<RangerAppClassDesc> classDesc = Optional.empty() /** note: unused */;
|
|
21
|
-
public Optional<RangerAppFunctionDesc> fnDesc = Optional.empty() /** note: unused */;
|
|
22
|
-
public ArrayList<RangerRefForce> ownerHistory = new ArrayList<RangerRefForce>();
|
|
23
|
-
public int varType = 0;
|
|
24
|
-
public int refType = 0;
|
|
25
|
-
public int initRefType = 0;
|
|
26
|
-
public Optional<Boolean> isParam = Optional.empty() /** note: unused */;
|
|
27
|
-
public int paramIndex = 0 /** note: unused */;
|
|
28
|
-
public boolean is_optional = false;
|
|
29
|
-
public boolean is_mutating = false /** note: unused */;
|
|
30
|
-
public boolean is_set = false /** note: unused */;
|
|
31
|
-
public boolean is_class_variable = false;
|
|
32
|
-
public boolean is_captured = false;
|
|
33
|
-
public Optional<CodeNode> node = Optional.empty();
|
|
34
|
-
public Optional<CodeNode> nameNode = Optional.empty();
|
|
35
|
-
public String description = "" /** note: unused */;
|
|
36
|
-
public String git_doc = "" /** note: unused */;
|
|
37
|
-
public boolean has_events = false;
|
|
38
|
-
public Optional<RangerParamEventMap> eMap = Optional.empty();
|
|
39
|
-
|
|
40
|
-
public void addEvent( String name , RangerParamEventHandler e ) {
|
|
41
|
-
if ( has_events == false ) {
|
|
42
|
-
eMap = Optional.of(new RangerParamEventMap());
|
|
43
|
-
has_events = true;
|
|
44
|
-
}
|
|
45
|
-
eMap.get().addEvent(name, e);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
public void changeStrength( int newStrength , int lifeTime , CodeNode changer ) {
|
|
49
|
-
final RangerRefForce entry = new RangerRefForce();
|
|
50
|
-
entry.strength = newStrength;
|
|
51
|
-
entry.lifetime = lifeTime;
|
|
52
|
-
entry.changer = Optional.of(changer);
|
|
53
|
-
ownerHistory.add(entry);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public boolean isProperty() {
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public boolean isClass() {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public boolean doesInherit() {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public boolean isAllocatedType() {
|
|
69
|
-
if ( nameNode.isPresent() ) {
|
|
70
|
-
if ( nameNode.get().eval_type != 0 ) {
|
|
71
|
-
if ( nameNode.get().eval_type == 6 ) {
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
if ( nameNode.get().eval_type == 7 ) {
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
if ( (((((nameNode.get().eval_type == 13) || (nameNode.get().eval_type == 12)) || (nameNode.get().eval_type == 4)) || (nameNode.get().eval_type == 2)) || (nameNode.get().eval_type == 5)) || (nameNode.get().eval_type == 3) ) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
if ( nameNode.get().eval_type == 11 ) {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
if ( nameNode.get().eval_type == 11 ) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
if ( nameNode.get().value_type == 9 ) {
|
|
89
|
-
if ( false == nameNode.get().isPrimitive() ) {
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if ( nameNode.get().value_type == 6 ) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
if ( nameNode.get().value_type == 7 ) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
public void moveRefTo( CodeNode node , RangerAppParamDesc target , RangerAppWriterContext ctx ) {
|
|
104
|
-
if ( node.ref_change_done ) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
if ( false == target.isAllocatedType() ) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
if ( false == this.isAllocatedType() ) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
node.ref_change_done = true;
|
|
114
|
-
final int other_s = target.getStrength();
|
|
115
|
-
final int my_s = this.getStrength();
|
|
116
|
-
int my_lifetime = this.getLifetime();
|
|
117
|
-
final int other_lifetime = target.getLifetime();
|
|
118
|
-
boolean a_lives = false;
|
|
119
|
-
boolean b_lives = false;
|
|
120
|
-
final boolean tmp_var = nameNode.get().hasFlag("temp");
|
|
121
|
-
if ( target.nameNode.isPresent() ) {
|
|
122
|
-
if ( target.nameNode.get().hasFlag("lives") ) {
|
|
123
|
-
my_lifetime = 2;
|
|
124
|
-
b_lives = true;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if ( nameNode.isPresent() ) {
|
|
128
|
-
if ( nameNode.get().hasFlag("lives") ) {
|
|
129
|
-
my_lifetime = 2;
|
|
130
|
-
a_lives = true;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
if ( other_s > 0 ) {
|
|
134
|
-
if ( my_s == 1 ) {
|
|
135
|
-
int lt = my_lifetime;
|
|
136
|
-
if ( other_lifetime > my_lifetime ) {
|
|
137
|
-
lt = other_lifetime;
|
|
138
|
-
}
|
|
139
|
-
this.changeStrength(0, lt, node);
|
|
140
|
-
} else {
|
|
141
|
-
if ( my_s == 0 ) {
|
|
142
|
-
if ( tmp_var == false ) {
|
|
143
|
-
ctx.addError(node, "Can not move a weak reference to a strong target, at " + node.getCode());
|
|
144
|
-
System.out.println(String.valueOf( "can not move weak refs to strong target:" ) );
|
|
145
|
-
this.debugRefChanges();
|
|
146
|
-
}
|
|
147
|
-
} else {
|
|
148
|
-
ctx.addError(node, "Can not move immutable reference to a strong target, evald type " + nameNode.get().eval_type_name);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
} else {
|
|
152
|
-
if ( a_lives || b_lives ) {
|
|
153
|
-
} else {
|
|
154
|
-
if ( (my_lifetime < other_lifetime) && (return_cnt == 0) ) {
|
|
155
|
-
if ( nameNode.get().hasFlag("returnvalue") == false ) {
|
|
156
|
-
ctx.addError(node, "Can not create a weak reference if target has longer lifetime than original, current lifetime == " + my_lifetime);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
public int originalStrength() {
|
|
164
|
-
final int __len = ownerHistory.size();
|
|
165
|
-
if ( __len > 0 ) {
|
|
166
|
-
final RangerRefForce firstEntry = ownerHistory.get(0);
|
|
167
|
-
return firstEntry.strength;
|
|
168
|
-
}
|
|
169
|
-
return 1;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
public int getLifetime() {
|
|
173
|
-
final int __len = ownerHistory.size();
|
|
174
|
-
if ( __len > 0 ) {
|
|
175
|
-
final RangerRefForce lastEntry = ownerHistory.get((__len - 1));
|
|
176
|
-
return lastEntry.lifetime;
|
|
177
|
-
}
|
|
178
|
-
return 1;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
public int getStrength() {
|
|
182
|
-
final int __len = ownerHistory.size();
|
|
183
|
-
if ( __len > 0 ) {
|
|
184
|
-
final RangerRefForce lastEntry = ownerHistory.get((__len - 1));
|
|
185
|
-
return lastEntry.strength;
|
|
186
|
-
}
|
|
187
|
-
return 1;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
public void debugRefChanges() {
|
|
191
|
-
System.out.println(String.valueOf( ("variable " + name) + " ref history : " ) );
|
|
192
|
-
for ( int i = 0; i < ownerHistory.size(); i++) {
|
|
193
|
-
RangerRefForce h = ownerHistory.get(i);
|
|
194
|
-
System.out.println(String.valueOf( ((" => change to " + h.strength) + " by ") + h.changer.get().getCode() ) );
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
public boolean pointsToObject( RangerAppWriterContext ctx ) {
|
|
199
|
-
if ( nameNode.isPresent() ) {
|
|
200
|
-
boolean is_primitive = false;
|
|
201
|
-
switch (nameNode.get().array_type ) {
|
|
202
|
-
case "string" :
|
|
203
|
-
is_primitive = true;
|
|
204
|
-
break;
|
|
205
|
-
case "int" :
|
|
206
|
-
is_primitive = true;
|
|
207
|
-
break;
|
|
208
|
-
case "boolean" :
|
|
209
|
-
is_primitive = true;
|
|
210
|
-
break;
|
|
211
|
-
case "double" :
|
|
212
|
-
is_primitive = true;
|
|
213
|
-
break;
|
|
214
|
-
}
|
|
215
|
-
if ( is_primitive ) {
|
|
216
|
-
return false;
|
|
217
|
-
}
|
|
218
|
-
if ( (nameNode.get().value_type == 6) || (nameNode.get().value_type == 7) ) {
|
|
219
|
-
boolean is_object = true;
|
|
220
|
-
switch (nameNode.get().array_type ) {
|
|
221
|
-
case "string" :
|
|
222
|
-
is_object = false;
|
|
223
|
-
break;
|
|
224
|
-
case "int" :
|
|
225
|
-
is_object = false;
|
|
226
|
-
break;
|
|
227
|
-
case "boolean" :
|
|
228
|
-
is_object = false;
|
|
229
|
-
break;
|
|
230
|
-
case "double" :
|
|
231
|
-
is_object = false;
|
|
232
|
-
break;
|
|
233
|
-
}
|
|
234
|
-
return is_object;
|
|
235
|
-
}
|
|
236
|
-
if ( nameNode.get().value_type == 9 ) {
|
|
237
|
-
boolean is_object_1 = true;
|
|
238
|
-
switch (nameNode.get().type_name ) {
|
|
239
|
-
case "string" :
|
|
240
|
-
is_object_1 = false;
|
|
241
|
-
break;
|
|
242
|
-
case "int" :
|
|
243
|
-
is_object_1 = false;
|
|
244
|
-
break;
|
|
245
|
-
case "boolean" :
|
|
246
|
-
is_object_1 = false;
|
|
247
|
-
break;
|
|
248
|
-
case "double" :
|
|
249
|
-
is_object_1 = false;
|
|
250
|
-
break;
|
|
251
|
-
}
|
|
252
|
-
if ( ctx.isEnumDefined(nameNode.get().type_name) ) {
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
return is_object_1;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
return false;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
public boolean isObject() {
|
|
262
|
-
if ( nameNode.isPresent() ) {
|
|
263
|
-
if ( nameNode.get().value_type == 9 ) {
|
|
264
|
-
if ( false == nameNode.get().isPrimitive() ) {
|
|
265
|
-
return true;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
return false;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
public boolean isArray() {
|
|
273
|
-
if ( nameNode.isPresent() ) {
|
|
274
|
-
if ( nameNode.get().value_type == 6 ) {
|
|
275
|
-
return true;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return false;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
public boolean isHash() {
|
|
282
|
-
if ( nameNode.isPresent() ) {
|
|
283
|
-
if ( nameNode.get().value_type == 7 ) {
|
|
284
|
-
return true;
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
public boolean isPrimitive() {
|
|
291
|
-
if ( nameNode.isPresent() ) {
|
|
292
|
-
return nameNode.get().isPrimitive();
|
|
293
|
-
}
|
|
294
|
-
return false;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
public String getRefTypeName() {
|
|
298
|
-
switch (refType ) {
|
|
299
|
-
case 0 :
|
|
300
|
-
return "NoType";
|
|
301
|
-
case 1 :
|
|
302
|
-
return "Weak";
|
|
303
|
-
}
|
|
304
|
-
return "";
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
public String getVarTypeName() {
|
|
308
|
-
switch (refType ) {
|
|
309
|
-
case 0 :
|
|
310
|
-
return "NoType";
|
|
311
|
-
case 1 :
|
|
312
|
-
return "This";
|
|
313
|
-
}
|
|
314
|
-
return "";
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
public String getTypeName() {
|
|
318
|
-
final String s = nameNode.get().type_name;
|
|
319
|
-
return s;
|
|
320
|
-
}
|
|
321
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import java.util.Optional;
|
|
2
|
-
|
|
3
|
-
class RangerAppValue {
|
|
4
|
-
public int double_value = 0 /** note: unused */;
|
|
5
|
-
public String string_value = "" /** note: unused */;
|
|
6
|
-
public int int_value = 0 /** note: unused */;
|
|
7
|
-
public boolean boolean_value = false /** note: unused */;
|
|
8
|
-
public Optional<RangerAppArrayValue> arr = Optional.empty() /** note: unused */;
|
|
9
|
-
public Optional<RangerAppHashValue> hash = Optional.empty() /** note: unused */;
|
|
10
|
-
}
|