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,400 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
class RangerAppMethodVariants {
|
|
3
|
-
def name:string ""
|
|
4
|
-
def variants@(weak):[RangerAppFunctionDesc]
|
|
5
|
-
}
|
|
6
|
-
class RangerAppInterfaceImpl {
|
|
7
|
-
def name:string ""
|
|
8
|
-
def typeParams:CodeNode
|
|
9
|
-
}
|
|
10
|
-
class RangerTraitParams {
|
|
11
|
-
def param_names:[string]
|
|
12
|
-
def values:[string:string]
|
|
13
|
-
}
|
|
14
|
-
class RangerAppClassDesc {
|
|
15
|
-
Extends (RangerAppParamDesc)
|
|
16
|
-
def name:string ""
|
|
17
|
-
def is_system:boolean false
|
|
18
|
-
def compiledName:string ""
|
|
19
|
-
def systemNames:[string:string]
|
|
20
|
-
def systemNodes@(weak):[string:CodeNode]
|
|
21
|
-
def systemInfo:CodeNode
|
|
22
|
-
|
|
23
|
-
; --- following could be compined into a enum -type
|
|
24
|
-
def is_interface:boolean false
|
|
25
|
-
def is_system_union:boolean false
|
|
26
|
-
def is_template:boolean false
|
|
27
|
-
def is_serialized:boolean false
|
|
28
|
-
def is_trait:boolean false
|
|
29
|
-
def is_operator_class false
|
|
30
|
-
def is_generic_instance false
|
|
31
|
-
def is_union false
|
|
32
|
-
|
|
33
|
-
def is_used_by_main false
|
|
34
|
-
def is_not_used false
|
|
35
|
-
|
|
36
|
-
def generic_params:CodeNode
|
|
37
|
-
def ctx@(weak):RangerAppWriterContext
|
|
38
|
-
def variables:[RangerAppParamDesc]
|
|
39
|
-
def capturedLocals@(weak):[RangerAppParamDesc]
|
|
40
|
-
def methods:[RangerAppFunctionDesc]
|
|
41
|
-
def defined_methods:[string:boolean]
|
|
42
|
-
def static_methods:[RangerAppFunctionDesc]
|
|
43
|
-
def defined_static_methods:[string:boolean]
|
|
44
|
-
def defined_variants:[string]
|
|
45
|
-
def method_variants:[string:RangerAppMethodVariants]
|
|
46
|
-
def has_constructor:boolean false
|
|
47
|
-
def constructor_node@(weak):CodeNode
|
|
48
|
-
def constructor_fn:RangerAppFunctionDesc
|
|
49
|
-
def has_destructor:boolean false
|
|
50
|
-
def destructor_node:CodeNode
|
|
51
|
-
def destructor_fn:RangerAppFunctionDesc
|
|
52
|
-
def extends_classes:[string]
|
|
53
|
-
def implements_interfaces:[string]
|
|
54
|
-
def consumes_traits:[string]
|
|
55
|
-
def trait_params:[string:RangerTraitParams]
|
|
56
|
-
def is_union_of:[string]
|
|
57
|
-
def nameNode@(weak):CodeNode
|
|
58
|
-
def classNode@(weak):CodeNode
|
|
59
|
-
def contr_writers:[CodeWriter]
|
|
60
|
-
def is_inherited:boolean false
|
|
61
|
-
|
|
62
|
-
fn isClass:boolean () {
|
|
63
|
-
return true
|
|
64
|
-
}
|
|
65
|
-
fn isProperty:boolean () {
|
|
66
|
-
return false
|
|
67
|
-
}
|
|
68
|
-
fn doesInherit:boolean () {
|
|
69
|
-
return is_inherited
|
|
70
|
-
}
|
|
71
|
-
fn isNormalClass:boolean () {
|
|
72
|
-
def special ( is_operator_class || is_trait || is_system || is_generic_instance || is_system_union || is_union )
|
|
73
|
-
return (special == false)
|
|
74
|
-
}
|
|
75
|
-
fn hasTrait@(optional weak):RangerAppClassDesc (class_name:string ctx@(weak):RangerAppWriterContext) {
|
|
76
|
-
def res@(optional):RangerAppClassDesc
|
|
77
|
-
for consumes_traits c_name:string i {
|
|
78
|
-
def c:RangerAppClassDesc (ctx.findClass(c_name))
|
|
79
|
-
if( c_name == class_name) {
|
|
80
|
-
res = c
|
|
81
|
-
return res
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return res
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
doc isSameOrParentClass "
|
|
88
|
-
Tests if the `class name` is either
|
|
89
|
-
- same class than the tested class
|
|
90
|
-
- belongs to the same union
|
|
91
|
-
- is either parent or child class of this class
|
|
92
|
-
- implements same trait (interface) than this class
|
|
93
|
-
"
|
|
94
|
-
fn isSameOrParentClass:boolean (class_name:string ctx@(weak):RangerAppWriterContext) {
|
|
95
|
-
|
|
96
|
-
if(ctx.isPrimitiveType(class_name)) {
|
|
97
|
-
if ((indexOf is_union_of class_name) >= 0) {
|
|
98
|
-
return true
|
|
99
|
-
}
|
|
100
|
-
return false
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (class_name == name) {
|
|
104
|
-
return true
|
|
105
|
-
}
|
|
106
|
-
if ((indexOf extends_classes class_name) >= 0) {
|
|
107
|
-
return true
|
|
108
|
-
}
|
|
109
|
-
if ((indexOf consumes_traits class_name) >= 0) {
|
|
110
|
-
return true
|
|
111
|
-
}
|
|
112
|
-
if ((indexOf implements_interfaces class_name) >= 0) {
|
|
113
|
-
return true
|
|
114
|
-
}
|
|
115
|
-
if ((indexOf is_union_of class_name) >= 0) {
|
|
116
|
-
return true
|
|
117
|
-
}
|
|
118
|
-
for extends_classes c_name:string i {
|
|
119
|
-
def c:RangerAppClassDesc (ctx.findClass(c_name))
|
|
120
|
-
if (c.isSameOrParentClass(class_name ctx)) {
|
|
121
|
-
return true
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
for consumes_traits c_name:string i {
|
|
125
|
-
def c:RangerAppClassDesc (ctx.findClass(c_name))
|
|
126
|
-
if (c.isSameOrParentClass(class_name ctx)) {
|
|
127
|
-
return true
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
for implements_interfaces i_name:string i {
|
|
131
|
-
def c:RangerAppClassDesc (ctx.findClass(i_name))
|
|
132
|
-
if (c.isSameOrParentClass(class_name ctx)) {
|
|
133
|
-
return true
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
for is_union_of i_name:string i {
|
|
137
|
-
;def c:RangerAppClassDesc (ctx.findClass(i_name))
|
|
138
|
-
;if (c.isSameOrParentClass(class_name ctx)) {
|
|
139
|
-
; return true
|
|
140
|
-
;}
|
|
141
|
-
if (ctx.isDefinedClass(i_name)) {
|
|
142
|
-
def c:RangerAppClassDesc (ctx.findClass(i_name))
|
|
143
|
-
if (c.isSameOrParentClass(class_name ctx)) {
|
|
144
|
-
return true
|
|
145
|
-
}
|
|
146
|
-
} {
|
|
147
|
-
; print "did not find union class " + i_name
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return false
|
|
151
|
-
}
|
|
152
|
-
fn hasOwnMethod:boolean (m_name:string) {
|
|
153
|
-
if (has defined_methods m_name) {
|
|
154
|
-
return true
|
|
155
|
-
}
|
|
156
|
-
return false
|
|
157
|
-
}
|
|
158
|
-
fn hasMethod:boolean (m_name:string) {
|
|
159
|
-
if (has defined_methods m_name) {
|
|
160
|
-
return true
|
|
161
|
-
}
|
|
162
|
-
for extends_classes cname:string i {
|
|
163
|
-
def cDesc:RangerAppClassDesc (ctx.findClass(cname))
|
|
164
|
-
if (cDesc.hasMethod(m_name)) {
|
|
165
|
-
return (cDesc.hasMethod(m_name))
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return false
|
|
169
|
-
}
|
|
170
|
-
fn findMethod@(optional weak):RangerAppFunctionDesc (f_name:string) {
|
|
171
|
-
def res@(weak lives):RangerAppFunctionDesc
|
|
172
|
-
def vNames (keys method_variants)
|
|
173
|
-
for vNames mname:string i {
|
|
174
|
-
if(mname == f_name) {
|
|
175
|
-
def list (unwrap (get method_variants mname))
|
|
176
|
-
res = (itemAt list.variants 0)
|
|
177
|
-
return res
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
for extends_classes cname:string i {
|
|
181
|
-
def cDesc:RangerAppClassDesc (ctx.findClass(cname))
|
|
182
|
-
if (cDesc.hasMethod(f_name)) {
|
|
183
|
-
return (cDesc.findMethod(f_name))
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return res
|
|
187
|
-
}
|
|
188
|
-
fn hasStaticMethod:boolean (m_name:string) {
|
|
189
|
-
return (has defined_static_methods m_name)
|
|
190
|
-
}
|
|
191
|
-
fn findStaticMethod@(weak optional):RangerAppFunctionDesc (f_name:string) {
|
|
192
|
-
def e@(weak lives):RangerAppFunctionDesc
|
|
193
|
-
for static_methods m:RangerAppFunctionDesc i {
|
|
194
|
-
if (m.name == f_name) {
|
|
195
|
-
e = m
|
|
196
|
-
return e
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
for extends_classes cname:string i {
|
|
200
|
-
def cDesc:RangerAppClassDesc (ctx.findClass(cname))
|
|
201
|
-
if (cDesc.hasStaticMethod(f_name)) {
|
|
202
|
-
return (cDesc.findStaticMethod(f_name))
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return e
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
fn findVariable@(optional weak):RangerAppParamDesc (f_name:string) {
|
|
209
|
-
|
|
210
|
-
def e:RangerAppParamDesc
|
|
211
|
-
for variables m:RangerAppParamDesc i {
|
|
212
|
-
if (m.name == f_name) {
|
|
213
|
-
e = m
|
|
214
|
-
return e
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
for extends_classes cname:string i {
|
|
218
|
-
def cDesc:RangerAppClassDesc (ctx.findClass(cname))
|
|
219
|
-
return (cDesc.findVariable(f_name))
|
|
220
|
-
}
|
|
221
|
-
return e
|
|
222
|
-
}
|
|
223
|
-
fn addParentClass:void (p_name:string) {
|
|
224
|
-
push extends_classes p_name
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
fn createVariable ( node:CodeNode ctx:RangerAppWriterContext wr:CodeWriter ) {
|
|
228
|
-
|
|
229
|
-
try {
|
|
230
|
-
|
|
231
|
-
def parser (ctx.getParser())
|
|
232
|
-
def s:string (node.getVRefAt(1))
|
|
233
|
-
def vDef@(lives):CodeNode (itemAt node.children 1)
|
|
234
|
-
def p@(temp):RangerAppParamDesc (new RangerAppParamDesc ())
|
|
235
|
-
|
|
236
|
-
if(vDef.has_type_annotation) {
|
|
237
|
-
parser.CheckTypeAnnotationOf( vDef ctx wr )
|
|
238
|
-
}
|
|
239
|
-
if( s != ((ctx.transformWord(s)))) {
|
|
240
|
-
; ctx.addError( node "Can not use reserved word " + s + " as class propery")
|
|
241
|
-
}
|
|
242
|
-
def currC this
|
|
243
|
-
|
|
244
|
-
; immutable classes have only weak properties
|
|
245
|
-
if currC.is_immutable {
|
|
246
|
-
vDef.setFlag("weak")
|
|
247
|
-
if( vDef.value_type == RangerNodeType.Array) {
|
|
248
|
-
def initNode (node.newExpressionNode())
|
|
249
|
-
initNode.push( (node.newVRefNode("new")) )
|
|
250
|
-
def tDef (node.newVRefNode("Vector"))
|
|
251
|
-
|
|
252
|
-
; Vector@(string)
|
|
253
|
-
def vAnn (node.newExpressionNode())
|
|
254
|
-
vAnn.push( (node.newVRefNode(vDef.array_type)))
|
|
255
|
-
tDef.has_vref_annotation = true
|
|
256
|
-
tDef.vref_annotation = vAnn
|
|
257
|
-
initNode.push(tDef)
|
|
258
|
-
|
|
259
|
-
set node.children 2 (initNode)
|
|
260
|
-
|
|
261
|
-
vDef.value_type = RangerNodeType.VRef
|
|
262
|
-
vDef.type_name = "Vector"
|
|
263
|
-
; def obj:Vector@(string)
|
|
264
|
-
def tAnn (node.newExpressionNode())
|
|
265
|
-
tAnn.push( (node.newVRefNode(vDef.array_type)))
|
|
266
|
-
vDef.has_type_annotation = true
|
|
267
|
-
vDef.type_annotation = tAnn
|
|
268
|
-
|
|
269
|
-
parser.CheckTypeAnnotationOf( vDef ctx wr )
|
|
270
|
-
parser.CheckVRefTypeAnnotationOf( tDef ctx wr )
|
|
271
|
-
|
|
272
|
-
}
|
|
273
|
-
if( vDef.value_type == RangerNodeType.Hash) {
|
|
274
|
-
def initNode (node.newExpressionNode())
|
|
275
|
-
initNode.push( (node.newVRefNode("new")) )
|
|
276
|
-
def tDef (node.newVRefNode("Map"))
|
|
277
|
-
|
|
278
|
-
; Vector@(string)
|
|
279
|
-
def vAnn (node.newExpressionNode())
|
|
280
|
-
vAnn.push( (node.newVRefNode(vDef.key_type)))
|
|
281
|
-
vAnn.push( (node.newVRefNode(vDef.array_type)))
|
|
282
|
-
tDef.has_vref_annotation = true
|
|
283
|
-
tDef.vref_annotation = vAnn
|
|
284
|
-
initNode.push(tDef)
|
|
285
|
-
set node.children 2 (initNode)
|
|
286
|
-
|
|
287
|
-
vDef.value_type = RangerNodeType.VRef
|
|
288
|
-
vDef.type_name = "Map"
|
|
289
|
-
; def obj:Vector@(string)
|
|
290
|
-
def tAnn (node.newExpressionNode())
|
|
291
|
-
tAnn.push( (node.newVRefNode(vDef.key_type)))
|
|
292
|
-
tAnn.push( (node.newVRefNode(vDef.array_type)))
|
|
293
|
-
vDef.has_type_annotation = true
|
|
294
|
-
vDef.type_annotation = tAnn
|
|
295
|
-
|
|
296
|
-
parser.CheckTypeAnnotationOf( vDef ctx wr )
|
|
297
|
-
parser.CheckVRefTypeAnnotationOf( tDef ctx wr )
|
|
298
|
-
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
; transforming reserved words here
|
|
303
|
-
p.name = s
|
|
304
|
-
p.value_type = vDef.value_type
|
|
305
|
-
p.node = node
|
|
306
|
-
p.is_class_variable = true
|
|
307
|
-
p.varType = RangerContextVarType.Property
|
|
308
|
-
p.node = node
|
|
309
|
-
p.nameNode = vDef
|
|
310
|
-
vDef.hasParamDesc = true
|
|
311
|
-
vDef.ownParamDesc = p
|
|
312
|
-
vDef.paramDesc = p
|
|
313
|
-
node.hasParamDesc = true
|
|
314
|
-
node.paramDesc = p
|
|
315
|
-
|
|
316
|
-
if (vDef.hasFlag("weak")) {
|
|
317
|
-
p.changeStrength(0 2 (unwrap p.nameNode))
|
|
318
|
-
} {
|
|
319
|
-
p.changeStrength(2 2 (unwrap p.nameNode))
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
if ((array_length node.children) > 2) {
|
|
323
|
-
p.set_cnt = 1
|
|
324
|
-
p.init_cnt = 1
|
|
325
|
-
p.def_value = (itemAt node.children 2)
|
|
326
|
-
p.is_optional = false
|
|
327
|
-
if(p.def_value.value_type == RangerNodeType.String) {
|
|
328
|
-
vDef.type_name = "string"
|
|
329
|
-
}
|
|
330
|
-
if(p.def_value.value_type == RangerNodeType.Integer) {
|
|
331
|
-
vDef.type_name = "int"
|
|
332
|
-
}
|
|
333
|
-
if(p.def_value.value_type == RangerNodeType.Double) {
|
|
334
|
-
vDef.type_name = "double"
|
|
335
|
-
}
|
|
336
|
-
if(p.def_value.value_type == RangerNodeType.Boolean) {
|
|
337
|
-
vDef.type_name = "boolean"
|
|
338
|
-
}
|
|
339
|
-
def valueNode (itemAt node.children 2)
|
|
340
|
-
if( (array_length valueNode.children) > 0) {
|
|
341
|
-
def fc (valueNode.getFirst())
|
|
342
|
-
if(fc.vref == "new") {
|
|
343
|
-
def second (valueNode.getSecond())
|
|
344
|
-
parser.CheckVRefTypeAnnotationOf( second ctx wr )
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
} {
|
|
348
|
-
p.is_optional = true
|
|
349
|
-
if (false == ((vDef.value_type == RangerNodeType.Array) || (vDef.value_type == RangerNodeType.Hash))) {
|
|
350
|
-
vDef.setFlag("optional")
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
currC.addVariable(p)
|
|
354
|
-
def subCtx:RangerAppWriterContext currC.ctx
|
|
355
|
-
subCtx.defineVariable(p.name p)
|
|
356
|
-
p.is_class_variable = true
|
|
357
|
-
; print "^^^^ added variable " + p.name + " to class " + currC.name
|
|
358
|
-
} {
|
|
359
|
-
ctx.addError( node ('Could not add variable into class ' + this.name) )
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
fn addVariable:void (desc@(strong):RangerAppParamDesc) {
|
|
364
|
-
push variables desc
|
|
365
|
-
desc.propertyClass = this
|
|
366
|
-
}
|
|
367
|
-
fn addMethod:void (desc@(strong):RangerAppFunctionDesc) {
|
|
368
|
-
set defined_methods desc.name true
|
|
369
|
-
push methods desc
|
|
370
|
-
|
|
371
|
-
def defVs:RangerAppMethodVariants (get method_variants desc.name)
|
|
372
|
-
if (null? defVs) {
|
|
373
|
-
def new_v:RangerAppMethodVariants (new RangerAppMethodVariants ())
|
|
374
|
-
set method_variants desc.name new_v
|
|
375
|
-
push defined_variants desc.name
|
|
376
|
-
push new_v.variants desc
|
|
377
|
-
} {
|
|
378
|
-
def new_v2:RangerAppMethodVariants (unwrap defVs)
|
|
379
|
-
push new_v2.variants desc
|
|
380
|
-
}
|
|
381
|
-
desc.container_class = this
|
|
382
|
-
|
|
383
|
-
}
|
|
384
|
-
fn addStaticMethod:void (desc@(strong):RangerAppFunctionDesc) {
|
|
385
|
-
set defined_static_methods desc.name true
|
|
386
|
-
push static_methods desc
|
|
387
|
-
|
|
388
|
-
if(desc.name == "main") {
|
|
389
|
-
def nn (desc.nameNode)
|
|
390
|
-
if(nn.has_vref_annotation == false) {
|
|
391
|
-
def vAnn (node.newExpressionNode())
|
|
392
|
-
nn.has_vref_annotation = true
|
|
393
|
-
nn.vref_annotation = vAnn
|
|
394
|
-
}
|
|
395
|
-
push nn.vref_annotation.children (nn.vref_annotation.newVRefNode("main"))
|
|
396
|
-
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
Enum RangerAnnType:int (
|
|
3
|
-
None
|
|
4
|
-
Expression
|
|
5
|
-
Type
|
|
6
|
-
VRef
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
Enum RangerMethodCallType:int (
|
|
10
|
-
None
|
|
11
|
-
Method
|
|
12
|
-
Static
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
Enum RangerWrap:int (
|
|
16
|
-
None
|
|
17
|
-
Optional
|
|
18
|
-
Unwrap
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
Enum RangerVForce:int (
|
|
22
|
-
None
|
|
23
|
-
Weak
|
|
24
|
-
Strong
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
Enum RangerNodeType:int (
|
|
28
|
-
NoType
|
|
29
|
-
InvalidType
|
|
30
|
-
Double
|
|
31
|
-
Integer
|
|
32
|
-
String
|
|
33
|
-
Boolean ; 5
|
|
34
|
-
Array
|
|
35
|
-
Hash
|
|
36
|
-
ImmutableArray
|
|
37
|
-
ImmutableHash
|
|
38
|
-
Object ; 10
|
|
39
|
-
VRef ; 11
|
|
40
|
-
Comment
|
|
41
|
-
Enum
|
|
42
|
-
Char
|
|
43
|
-
CharBuffer
|
|
44
|
-
Expression
|
|
45
|
-
ExpressionType
|
|
46
|
-
Lambda
|
|
47
|
-
XMLNode
|
|
48
|
-
XMLText
|
|
49
|
-
XMLAttr
|
|
50
|
-
XMLCDATA
|
|
51
|
-
Dictionary
|
|
52
|
-
Any
|
|
53
|
-
Class ; 25
|
|
54
|
-
GenericClass
|
|
55
|
-
ClassRef
|
|
56
|
-
Method
|
|
57
|
-
ClassVar
|
|
58
|
-
Function
|
|
59
|
-
Literal
|
|
60
|
-
Quasiliteral
|
|
61
|
-
Null
|
|
62
|
-
ArrayLiteral
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
Enum RangerNodeRefType:int (
|
|
66
|
-
NoType
|
|
67
|
-
Weak
|
|
68
|
-
Strong
|
|
69
|
-
Shared
|
|
70
|
-
StrongImmutable
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
Enum RangerContextVarType (
|
|
74
|
-
NoType
|
|
75
|
-
This
|
|
76
|
-
ThisProperty
|
|
77
|
-
NewObject
|
|
78
|
-
FunctionParameter
|
|
79
|
-
LocalVariable
|
|
80
|
-
Array
|
|
81
|
-
Object
|
|
82
|
-
Property
|
|
83
|
-
Class
|
|
84
|
-
Function
|
|
85
|
-
)
|
|
86
|
-
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
operator type:void all {
|
|
3
|
-
fn r.funcdesc:RangerAppFunctionDesc ( node:CodeNode ctx:RangerAppWriterContext ) {
|
|
4
|
-
def m@(lives temp):RangerAppFunctionDesc (new RangerAppFunctionDesc ())
|
|
5
|
-
def cn:CodeNode (node.getSecond())
|
|
6
|
-
m.name = cn.vref
|
|
7
|
-
m.compiledName = (ctx.transformWord(cn.vref))
|
|
8
|
-
m.node = node
|
|
9
|
-
m.nameNode = (itemAt node.children 1)
|
|
10
|
-
if (node.hasBooleanProperty("strong")) {
|
|
11
|
-
m.refType = RangerNodeRefType.Strong
|
|
12
|
-
} {
|
|
13
|
-
m.refType = RangerNodeRefType.Weak
|
|
14
|
-
}
|
|
15
|
-
return m
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
class RangerAppFunctionDesc {
|
|
19
|
-
Extends (RangerAppParamDesc)
|
|
20
|
-
def name:string ""
|
|
21
|
-
def ref_cnt:int 0
|
|
22
|
-
def node@(weak):CodeNode
|
|
23
|
-
def nameNode@(weak):CodeNode
|
|
24
|
-
def fnBody@(weak):CodeNode
|
|
25
|
-
def params:[RangerAppParamDesc]
|
|
26
|
-
def return_value:RangerAppParamDesc
|
|
27
|
-
def is_method:boolean false
|
|
28
|
-
def is_static:boolean false
|
|
29
|
-
def is_lambda false
|
|
30
|
-
def is_unsed false
|
|
31
|
-
def is_called_from_main false
|
|
32
|
-
def container_class:RangerAppClassDesc
|
|
33
|
-
def refType:RangerNodeRefType RangerNodeRefType.NoType
|
|
34
|
-
def fnCtx:RangerAppWriterContext
|
|
35
|
-
|
|
36
|
-
def insideFn@(weak):RangerAppFunctionDesc
|
|
37
|
-
def call_graph_done false
|
|
38
|
-
def isCalling@(weak):[RangerAppFunctionDesc]
|
|
39
|
-
def isCalledBy@(weak):[RangerAppFunctionDesc]
|
|
40
|
-
def isUsingClasses@(weak):[RangerAppClassDesc]
|
|
41
|
-
def isDirectlyUsingClasses@(weak):[RangerAppClassDesc]
|
|
42
|
-
|
|
43
|
-
def myLambdas@(weak):[RangerAppFunctionDesc]
|
|
44
|
-
|
|
45
|
-
fn addCallTo( m@(weak):RangerAppFunctionDesc) {
|
|
46
|
-
if( (indexOf m.isCalledBy this) < 0 ) {
|
|
47
|
-
push m.isCalledBy this
|
|
48
|
-
push isCalling m
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
fn addIndirectClassUsage( m@(weak):RangerAppClassDesc ctx:RangerAppWriterContext ) {
|
|
53
|
-
if( (indexOf this.isUsingClasses m) < 0 ) {
|
|
54
|
-
push this.isUsingClasses m
|
|
55
|
-
m.variables.forEach({
|
|
56
|
-
def nn item.nameNode
|
|
57
|
-
if( ctx.isDefinedClass( nn.type_name )) {
|
|
58
|
-
def cc (ctx.findClass(nn.type_name))
|
|
59
|
-
this.addIndirectClassUsage( cc ctx )
|
|
60
|
-
}
|
|
61
|
-
if( ctx.isDefinedClass( nn.array_type )) {
|
|
62
|
-
def cc (ctx.findClass(nn.array_type))
|
|
63
|
-
this.addIndirectClassUsage( cc ctx )
|
|
64
|
-
}
|
|
65
|
-
})
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
fn addClassUsage( m@(weak):RangerAppClassDesc ctx:RangerAppWriterContext ) {
|
|
71
|
-
if( (indexOf this.isUsingClasses m) < 0 ) {
|
|
72
|
-
push this.isUsingClasses m
|
|
73
|
-
push this.isDirectlyUsingClasses m
|
|
74
|
-
m.variables.forEach({
|
|
75
|
-
def nn item.nameNode
|
|
76
|
-
if( ctx.isDefinedClass( nn.type_name )) {
|
|
77
|
-
def cc (ctx.findClass(nn.type_name))
|
|
78
|
-
this.addIndirectClassUsage( cc ctx )
|
|
79
|
-
}
|
|
80
|
-
if( ctx.isDefinedClass( nn.array_type )) {
|
|
81
|
-
def cc (ctx.findClass(nn.array_type))
|
|
82
|
-
this.addIndirectClassUsage( cc ctx )
|
|
83
|
-
}
|
|
84
|
-
})
|
|
85
|
-
} {
|
|
86
|
-
if( (indexOf this.isDirectlyUsingClasses m) < 0 ) {
|
|
87
|
-
push this.isDirectlyUsingClasses m
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
fn forOtherVersions ( ctx:RangerAppWriterContext cb:(_:void (item:RangerAppFunctionDesc))) {
|
|
94
|
-
if(null? this.container_class) {
|
|
95
|
-
return
|
|
96
|
-
}
|
|
97
|
-
def f this
|
|
98
|
-
def cc (unwrap f.container_class)
|
|
99
|
-
cc.extends_classes.forEach({
|
|
100
|
-
def otherClass (ctx.findClass(item))
|
|
101
|
-
if(otherClass.hasMethod(f.name)) {
|
|
102
|
-
def m (otherClass.findMethod(f.name))
|
|
103
|
-
cb( m )
|
|
104
|
-
}
|
|
105
|
-
})
|
|
106
|
-
def root (ctx.getRoot())
|
|
107
|
-
root.definedClasses.forEach({
|
|
108
|
-
if( (indexOf item.extends_classes f.container_class.name) >= 0 ) {
|
|
109
|
-
if(item.hasMethod(f.name)) {
|
|
110
|
-
def m (item.findMethod(f.name))
|
|
111
|
-
cb( m )
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
})
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
fn isFunction:boolean () {
|
|
118
|
-
return true
|
|
119
|
-
}
|
|
120
|
-
fn isClass:boolean () {
|
|
121
|
-
return false
|
|
122
|
-
}
|
|
123
|
-
fn isProperty:boolean () {
|
|
124
|
-
return false
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
Import "ng_RangerAppEnums.clj"
|
|
2
|
-
|
|
3
|
-
class RangerAppTodo {
|
|
4
|
-
def description:string ""
|
|
5
|
-
def todonode@(weak):CodeNode
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
class RangerCompilerMessage {
|
|
9
|
-
def error_level:int 0
|
|
10
|
-
def code_line:int 0
|
|
11
|
-
def fileName:string ""
|
|
12
|
-
def description:string ""
|
|
13
|
-
def node@(weak):CodeNode
|
|
14
|
-
}
|
|
15
|
-
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
class RangerAppOperatorDesc {
|
|
3
|
-
|
|
4
|
-
Extends (RangerAppParamDesc)
|
|
5
|
-
def name:string ""
|
|
6
|
-
def ref_cnt:int 0
|
|
7
|
-
def node@(weak):CodeNode
|
|
8
|
-
def nameNode@(weak):CodeNode
|
|
9
|
-
def fnBody@(weak):CodeNode
|
|
10
|
-
def op_params@(weak):[CodeNode]
|
|
11
|
-
def firstArg:CodeNode
|
|
12
|
-
|
|
13
|
-
fn isOperator:boolean () {
|
|
14
|
-
return true
|
|
15
|
-
}
|
|
16
|
-
fn isProperty:boolean () {
|
|
17
|
-
return false
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|