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,7 +0,0 @@
|
|
|
1
|
-
call ranger-compiler day1.clj -l=es6
|
|
2
|
-
call ranger-compiler day1.clj -l=go
|
|
3
|
-
call ranger-compiler day1.clj -l=php
|
|
4
|
-
call ranger-compiler day1.clj -l=cpp
|
|
5
|
-
call ranger-compiler day1.clj -l=java7
|
|
6
|
-
call ranger-compiler day1.clj -l=scala -scalafiddle
|
|
7
|
-
call ranger-compiler day1.clj -l=swift3
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
call ranger-compiler day1_part2.clj -l=es6
|
|
2
|
-
call ranger-compiler day1_part2.clj -l=go
|
|
3
|
-
call ranger-compiler day1_part2.clj -l=php
|
|
4
|
-
call ranger-compiler day1_part2.clj -l=cpp
|
|
5
|
-
call ranger-compiler day1_part2.clj -l=java7
|
|
6
|
-
call ranger-compiler day1_part2.clj -l=scala -scalafiddle
|
|
7
|
-
call ranger-compiler day1_part2.clj -l=swift3
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
class day_one {
|
|
4
|
-
static fn main() {
|
|
5
|
-
def data `428122498997587283996116951397957933569136949848379417125362532269869461185743113733992331379856446362482129646556286611543756564275715359874924898113424472782974789464348626278532936228881786273586278886575828239366794429223317476722337424399239986153675275924113322561873814364451339186918813451685263192891627186769818128715595715444565444581514677521874935942913547121751851631373316122491471564697731298951989511917272684335463436218283261962158671266625299188764589814518793576375629163896349665312991285776595142146261792244475721782941364787968924537841698538288459355159783985638187254653851864874544584878999193242641611859756728634623853475638478923744471563845635468173824196684361934269459459124269196811512927442662761563824323621758785866391424778683599179447845595931928589255935953295111937431266815352781399967295389339626178664148415561175386725992469782888757942558362117938629369129439717427474416851628121191639355646394276451847131182652486561415942815818785884559193483878139351841633366398788657844396925423217662517356486193821341454889283266691224778723833397914224396722559593959125317175899594685524852419495793389481831354787287452367145661829287518771631939314683137722493531318181315216342994141683484111969476952946378314883421677952397588613562958741328987734565492378977396431481215983656814486518865642645612413945129485464979535991675776338786758997128124651311153182816188924935186361813797251997643992686294724699281969473142721116432968216434977684138184481963845141486793996476793954226225885432422654394439882842163295458549755137247614338991879966665925466545111899714943716571113326479432925939227996799951279485722836754457737668191845914566732285928453781818792236447816127492445993945894435692799839217467253986218213131249786833333936332257795191937942688668182629489191693154184177398186462481316834678733713614889439352976144726162214648922159719979143735815478633912633185334529484779322818611438194522292278787653763328944421516569181178517915745625295158611636365253948455727653672922299582352766484`
|
|
6
|
-
def values (map (strsplit data "") {
|
|
7
|
-
return (unwrap (to_int item))
|
|
8
|
-
} _:[int])
|
|
9
|
-
def random_ch (fn:int (list:[int] index:int) {
|
|
10
|
-
if( index >= (size list)) {
|
|
11
|
-
return (at list 0)
|
|
12
|
-
}
|
|
13
|
-
return (at list index)
|
|
14
|
-
})
|
|
15
|
-
print (to_string (reduce values {
|
|
16
|
-
return (? (right == (random_ch(values (index + 1)))) (left + right) left )
|
|
17
|
-
} 0))
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
operator type:void all {
|
|
3
|
-
fn assert:void (condition:boolean txt) {
|
|
4
|
-
if(condition) {
|
|
5
|
-
print "ERROR " + txt
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
class day_one_part_two {
|
|
10
|
-
|
|
11
|
-
static fn solve:int (data:string) {
|
|
12
|
-
def list (strsplit data "")
|
|
13
|
-
def len (size list)
|
|
14
|
-
def half_index (to_int (len / 2))
|
|
15
|
-
|
|
16
|
-
def leftSide (map (filter list {
|
|
17
|
-
return index < half_index
|
|
18
|
-
}) {
|
|
19
|
-
return (unwrap (to_int item))
|
|
20
|
-
} _:[int])
|
|
21
|
-
|
|
22
|
-
def rightSide (map (filter list {
|
|
23
|
-
return index >= half_index
|
|
24
|
-
}) {
|
|
25
|
-
return (unwrap (to_int item))
|
|
26
|
-
} _:[int])
|
|
27
|
-
|
|
28
|
-
return (reduce leftSide {
|
|
29
|
-
def other (at rightSide index)
|
|
30
|
-
return (? (right == other) (left + right + other) left )
|
|
31
|
-
} 0))
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
static fn main() {
|
|
35
|
-
def data `428122498997587283996116951397957933569136949848379417125362532269869461185743113733992331379856446362482129646556286611543756564275715359874924898113424472782974789464348626278532936228881786273586278886575828239366794429223317476722337424399239986153675275924113322561873814364451339186918813451685263192891627186769818128715595715444565444581514677521874935942913547121751851631373316122491471564697731298951989511917272684335463436218283261962158671266625299188764589814518793576375629163896349665312991285776595142146261792244475721782941364787968924537841698538288459355159783985638187254653851864874544584878999193242641611859756728634623853475638478923744471563845635468173824196684361934269459459124269196811512927442662761563824323621758785866391424778683599179447845595931928589255935953295111937431266815352781399967295389339626178664148415561175386725992469782888757942558362117938629369129439717427474416851628121191639355646394276451847131182652486561415942815818785884559193483878139351841633366398788657844396925423217662517356486193821341454889283266691224778723833397914224396722559593959125317175899594685524852419495793389481831354787287452367145661829287518771631939314683137722493531318181315216342994141683484111969476952946378314883421677952397588613562958741328987734565492378977396431481215983656814486518865642645612413945129485464979535991675776338786758997128124651311153182816188924935186361813797251997643992686294724699281969473142721116432968216434977684138184481963845141486793996476793954226225885432422654394439882842163295458549755137247614338991879966665925466545111899714943716571113326479432925939227996799951279485722836754457737668191845914566732285928453781818792236447816127492445993945894435692799839217467253986218213131249786833333936332257795191937942688668182629489191693154184177398186462481316834678733713614889439352976144726162214648922159719979143735815478633912633185334529484779322818611438194522292278787653763328944421516569181178517915745625295158611636365253948455727653672922299582352766484`
|
|
36
|
-
assert ((day_one_part_two.solve("1212")) != 6 ) "1212"
|
|
37
|
-
assert ((day_one_part_two.solve("1221")) != 0 ) "1221"
|
|
38
|
-
assert ((day_one_part_two.solve("123425")) != 4 ) "123425"
|
|
39
|
-
assert ((day_one_part_two.solve('123123')) != 12 ) "123123"
|
|
40
|
-
assert ((day_one_part_two.solve('12131415')) != 4 ) "12131415"
|
|
41
|
-
print (to_string (day_one_part_two.solve(data)))
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
428122498997587283996116951397957933569136949848379417125362532269869461185743113733992331379856446362482129646556286611543756564275715359874924898113424472782974789464348626278532936228881786273586278886575828239366794429223317476722337424399239986153675275924113322561873814364451339186918813451685263192891627186769818128715595715444565444581514677521874935942913547121751851631373316122491471564697731298951989511917272684335463436218283261962158671266625299188764589814518793576375629163896349665312991285776595142146261792244475721782941364787968924537841698538288459355159783985638187254653851864874544584878999193242641611859756728634623853475638478923744471563845635468173824196684361934269459459124269196811512927442662761563824323621758785866391424778683599179447845595931928589255935953295111937431266815352781399967295389339626178664148415561175386725992469782888757942558362117938629369129439717427474416851628121191639355646394276451847131182652486561415942815818785884559193483878139351841633366398788657844396925423217662517356486193821341454889283266691224778723833397914224396722559593959125317175899594685524852419495793389481831354787287452367145661829287518771631939314683137722493531318181315216342994141683484111969476952946378314883421677952397588613562958741328987734565492378977396431481215983656814486518865642645612413945129485464979535991675776338786758997128124651311153182816188924935186361813797251997643992686294724699281969473142721116432968216434977684138184481963845141486793996476793954226225885432422654394439882842163295458549755137247614338991879966665925466545111899714943716571113326479432925939227996799951279485722836754457737668191845914566732285928453781818792236447816127492445993945894435692799839217467253986218213131249786833333936332257795191937942688668182629489191693154184177398186462481316834678733713614889439352976144726162214648922159719979143735815478633912633185334529484779322818611438194522292278787653763328944421516569181178517915745625295158611636365253948455727653672922299582352766484
|
|
Binary file
|
|
Binary file
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
#include <memory>
|
|
2
|
-
#include "variant.hpp"
|
|
3
|
-
#include <string>
|
|
4
|
-
#include <vector>
|
|
5
|
-
#include <sstream>
|
|
6
|
-
#include <iterator>
|
|
7
|
-
#include <functional>
|
|
8
|
-
#include <iostream>
|
|
9
|
-
|
|
10
|
-
// define classes here to avoid compiler errors
|
|
11
|
-
class day_two;
|
|
12
|
-
class operatorsOf;
|
|
13
|
-
|
|
14
|
-
typedef mpark::variant<std::shared_ptr<day_two>, int, std::string, bool, double> r_union_Any;
|
|
15
|
-
|
|
16
|
-
std::vector<std::string> r_str_split(std::string data, std::string token) {
|
|
17
|
-
std::vector<std::string> output;
|
|
18
|
-
size_t pos = std::string::npos;
|
|
19
|
-
if(token.length() == 0) {
|
|
20
|
-
for(std::string::iterator it = data.begin(); it != data.end(); ++it) {
|
|
21
|
-
output.push_back( std::string( it, it + 1) );
|
|
22
|
-
}
|
|
23
|
-
return output;
|
|
24
|
-
}
|
|
25
|
-
do
|
|
26
|
-
{
|
|
27
|
-
pos = data.find(token);
|
|
28
|
-
output.push_back(data.substr(0, pos));
|
|
29
|
-
if (std::string::npos != pos)
|
|
30
|
-
data = data.substr(pos + token.size());
|
|
31
|
-
} while (std::string::npos != pos);
|
|
32
|
-
return output;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
template <class T>
|
|
37
|
-
class r_optional_primitive {
|
|
38
|
-
public:
|
|
39
|
-
bool has_value;
|
|
40
|
-
T value;
|
|
41
|
-
r_optional_primitive<T> & operator=(const r_optional_primitive<T> & rhs) {
|
|
42
|
-
has_value = rhs.has_value;
|
|
43
|
-
value = rhs.value;
|
|
44
|
-
return *this;
|
|
45
|
-
}
|
|
46
|
-
r_optional_primitive<T> & operator=(const T a_value) {
|
|
47
|
-
has_value = true;
|
|
48
|
-
value = a_value;
|
|
49
|
-
return *this;
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
r_optional_primitive<int> cpp_str_to_int(std::string s) {
|
|
54
|
-
r_optional_primitive<int> result;
|
|
55
|
-
try {
|
|
56
|
-
result.value = std::stoi(s);
|
|
57
|
-
result.has_value = true;
|
|
58
|
-
} catch (...) {
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// header definitions
|
|
65
|
-
class day_two : public std::enable_shared_from_this<day_two> {
|
|
66
|
-
public :
|
|
67
|
-
/* class constructor */
|
|
68
|
-
day_two( );
|
|
69
|
-
/* static methods */
|
|
70
|
-
static void main();
|
|
71
|
-
};
|
|
72
|
-
class operatorsOf : public std::enable_shared_from_this<operatorsOf> {
|
|
73
|
-
public :
|
|
74
|
-
/* class constructor */
|
|
75
|
-
operatorsOf( );
|
|
76
|
-
/* static methods */
|
|
77
|
-
static void forEach_2( std::vector<std::string> __self , std::function<void(std::string, int)> cb );
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
int __g_argc;
|
|
81
|
-
char **__g_argv;
|
|
82
|
-
day_two::day_two( ) {
|
|
83
|
-
}
|
|
84
|
-
int main(int argc, char* argv[]) {
|
|
85
|
-
__g_argc = argc;
|
|
86
|
-
__g_argv = argv;
|
|
87
|
-
std::string data = std::string("\r\n3751\t3769\t2769\t2039\t2794\t240\t3579\t1228\t4291\t220\t324\t3960\t211\t1346\t237\t1586\r\n550\t589\t538\t110\t167\t567\t99\t203\t524\t288\t500\t111\t118\t185\t505\t74\r\n2127\t1904\t199\t221\t1201\t250\t1119\t377\t1633\t1801\t2011\t1794\t394\t238\t206\t680\r\n435\t1703\t1385\t1461\t213\t1211\t192\t1553\t1580\t197\t571\t195\t326\t1491\t869\t1282\r\n109\t104\t3033\t120\t652\t2752\t1822\t2518\t1289\t1053\t1397\t951\t3015\t3016\t125\t1782\r\n2025\t1920\t1891\t99\t1057\t1909\t2237\t106\t97\t920\t603\t1841\t2150\t1980\t1970\t88\r\n1870\t170\t167\t176\t306\t1909\t1825\t1709\t168\t1400\t359\t817\t1678\t1718\t1594\t1552\r\n98\t81\t216\t677\t572\t295\t38\t574\t403\t74\t91\t534\t662\t588\t511\t51\r\n453\t1153\t666\t695\t63\t69\t68\t58\t524\t1088\t75\t1117\t1192\t1232\t1046\t443\r\n3893\t441\t1825\t3730\t3660\t115\t4503\t4105\t3495\t4092\t48\t3852\t132\t156\t150\t4229\r\n867\t44\t571\t40\t884\t922\t418\t328\t901\t845\t42\t860\t932\t53\t432\t569\r\n905\t717\t162\t4536\t4219\t179\t990\t374\t4409\t4821\t393\t4181\t4054\t4958\t186\t193\r\n2610\t2936\t218\t2552\t3281\t761\t204\t3433\t3699\t2727\t3065\t3624\t193\t926\t1866\t236\r\n2602\t216\t495\t3733\t183\t4688\t2893\t4042\t3066\t3810\t189\t4392\t3900\t4321\t2814\t159\r\n166\t136\t80\t185\t135\t78\t177\t123\t82\t150\t121\t145\t115\t63\t68\t24\r\n214\t221\t265\t766\t959\t1038\t226\t1188\t1122\t117\t458\t1105\t1285\t1017\t274\t281 \r\n");
|
|
88
|
-
std::vector<std::string> list = r_str_split( data, std::string(""));
|
|
89
|
-
/** unused: int idx = 0 **/ ;
|
|
90
|
-
int value = 0;
|
|
91
|
-
int n_idx = 1;
|
|
92
|
-
int min = 0;
|
|
93
|
-
int max = 0;
|
|
94
|
-
int total = 0;
|
|
95
|
-
operatorsOf::forEach_2(list, [&](std::string item, int index) mutable {
|
|
96
|
-
r_optional_primitive<int> iValue = cpp_str_to_int(item);
|
|
97
|
-
if ( iValue.has_value ) {
|
|
98
|
-
value = (/*unwrap int*/iValue.value) + (value * 10);
|
|
99
|
-
n_idx = n_idx + 1;
|
|
100
|
-
} else {
|
|
101
|
-
if ( n_idx > 1 ) {
|
|
102
|
-
if ( (min == 0) && (max == 0) ) {
|
|
103
|
-
min = value;
|
|
104
|
-
max = value;
|
|
105
|
-
} else {
|
|
106
|
-
if ( min > value ) {
|
|
107
|
-
min = value;
|
|
108
|
-
}
|
|
109
|
-
if ( max < value ) {
|
|
110
|
-
max = value;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
value = 0;
|
|
115
|
-
n_idx = 1;
|
|
116
|
-
if ( ((item.at(0)) == (10)) || ((item.at(0)) == (13)) ) {
|
|
117
|
-
total = total + (max - min);
|
|
118
|
-
max = 0;
|
|
119
|
-
min = 0;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
std::cout << std::string("Total == ") + std::to_string(total) << std::endl;
|
|
124
|
-
return 0;
|
|
125
|
-
}
|
|
126
|
-
operatorsOf::operatorsOf( ) {
|
|
127
|
-
}
|
|
128
|
-
void operatorsOf::forEach_2( std::vector<std::string> __self , std::function<void(std::string, int)> cb ) {
|
|
129
|
-
for ( int i = 0; i != (int)(__self.size()); i++) {
|
|
130
|
-
std::string it = __self.at(i);
|
|
131
|
-
cb(it, i);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
package main
|
|
2
|
-
import (
|
|
3
|
-
"strings"
|
|
4
|
-
"strconv"
|
|
5
|
-
"fmt"
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
type GoNullable struct {
|
|
9
|
-
value interface{}
|
|
10
|
-
has_value bool
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
func r_str_2_i64(s string) *GoNullable {
|
|
15
|
-
res := new(GoNullable);
|
|
16
|
-
if v, err := strconv.ParseInt(s, 10, 64); err == nil {
|
|
17
|
-
res.has_value = true
|
|
18
|
-
res.value = v
|
|
19
|
-
} else {
|
|
20
|
-
res.has_value = false
|
|
21
|
-
}
|
|
22
|
-
return res
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
type day_two struct {
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
func CreateNew_day_two() *day_two {
|
|
29
|
-
me := new(day_two)
|
|
30
|
-
return me;
|
|
31
|
-
}
|
|
32
|
-
func main() {
|
|
33
|
-
var data string= "\r\n3751\t3769\t2769\t2039\t2794\t240\t3579\t1228\t4291\t220\t324\t3960\t211\t1346\t237\t1586\r\n550\t589\t538\t110\t167\t567\t99\t203\t524\t288\t500\t111\t118\t185\t505\t74\r\n2127\t1904\t199\t221\t1201\t250\t1119\t377\t1633\t1801\t2011\t1794\t394\t238\t206\t680\r\n435\t1703\t1385\t1461\t213\t1211\t192\t1553\t1580\t197\t571\t195\t326\t1491\t869\t1282\r\n109\t104\t3033\t120\t652\t2752\t1822\t2518\t1289\t1053\t1397\t951\t3015\t3016\t125\t1782\r\n2025\t1920\t1891\t99\t1057\t1909\t2237\t106\t97\t920\t603\t1841\t2150\t1980\t1970\t88\r\n1870\t170\t167\t176\t306\t1909\t1825\t1709\t168\t1400\t359\t817\t1678\t1718\t1594\t1552\r\n98\t81\t216\t677\t572\t295\t38\t574\t403\t74\t91\t534\t662\t588\t511\t51\r\n453\t1153\t666\t695\t63\t69\t68\t58\t524\t1088\t75\t1117\t1192\t1232\t1046\t443\r\n3893\t441\t1825\t3730\t3660\t115\t4503\t4105\t3495\t4092\t48\t3852\t132\t156\t150\t4229\r\n867\t44\t571\t40\t884\t922\t418\t328\t901\t845\t42\t860\t932\t53\t432\t569\r\n905\t717\t162\t4536\t4219\t179\t990\t374\t4409\t4821\t393\t4181\t4054\t4958\t186\t193\r\n2610\t2936\t218\t2552\t3281\t761\t204\t3433\t3699\t2727\t3065\t3624\t193\t926\t1866\t236\r\n2602\t216\t495\t3733\t183\t4688\t2893\t4042\t3066\t3810\t189\t4392\t3900\t4321\t2814\t159\r\n166\t136\t80\t185\t135\t78\t177\t123\t82\t150\t121\t145\t115\t63\t68\t24\r\n214\t221\t265\t766\t959\t1038\t226\t1188\t1122\t117\t458\t1105\t1285\t1017\t274\t281 \r\n";
|
|
34
|
-
var list []string= strings.Split(data, "");
|
|
35
|
-
/** unused: idx*/
|
|
36
|
-
var value int64= int64(0);
|
|
37
|
-
var n_idx int64= int64(1);
|
|
38
|
-
var min int64= int64(0);
|
|
39
|
-
var max int64= int64(0);
|
|
40
|
-
var total int64= int64(0);
|
|
41
|
-
operatorsOf_static_forEach_2(list, func (item string, index int64) () {
|
|
42
|
-
var iValue *GoNullable = new(GoNullable);
|
|
43
|
-
iValue = r_str_2_i64(item);
|
|
44
|
-
if iValue.has_value {
|
|
45
|
-
value = (iValue.value.(int64)) + (value * int64(10));
|
|
46
|
-
n_idx = n_idx + int64(1);
|
|
47
|
-
} else {
|
|
48
|
-
if n_idx > int64(1) {
|
|
49
|
-
if (min == int64(0)) && (max == int64(0)) {
|
|
50
|
-
min = value;
|
|
51
|
-
max = value;
|
|
52
|
-
} else {
|
|
53
|
-
if min > value {
|
|
54
|
-
min = value;
|
|
55
|
-
}
|
|
56
|
-
if max < value {
|
|
57
|
-
max = value;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
value = int64(0);
|
|
62
|
-
n_idx = int64(1);
|
|
63
|
-
if ((int64(item[int64(0)])) == int64((10))) || ((int64(item[int64(0)])) == int64((13))) {
|
|
64
|
-
total = total + (max - min);
|
|
65
|
-
max = int64(0);
|
|
66
|
-
min = int64(0);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
fmt.Println( strings.Join([]string{ "Total == ",strconv.FormatInt(total, 10) }, "") )
|
|
71
|
-
}
|
|
72
|
-
type operatorsOf struct {
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
func CreateNew_operatorsOf() *operatorsOf {
|
|
76
|
-
me := new(operatorsOf)
|
|
77
|
-
return me;
|
|
78
|
-
}
|
|
79
|
-
func operatorsOf_static_forEach_2(__self []string, cb func(string, int64) ()) () {
|
|
80
|
-
var i int64 = 0;
|
|
81
|
-
for ; i < int64(len(__self)) ; i++ {
|
|
82
|
-
it := __self[i];
|
|
83
|
-
cb(it, i);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
class day_two {
|
|
2
|
-
constructor() {
|
|
3
|
-
}
|
|
4
|
-
}
|
|
5
|
-
/* static JavaSript main routine at the end of the JS file */
|
|
6
|
-
function __js_main() {
|
|
7
|
-
const data = "\r\n3751\t3769\t2769\t2039\t2794\t240\t3579\t1228\t4291\t220\t324\t3960\t211\t1346\t237\t1586\r\n550\t589\t538\t110\t167\t567\t99\t203\t524\t288\t500\t111\t118\t185\t505\t74\r\n2127\t1904\t199\t221\t1201\t250\t1119\t377\t1633\t1801\t2011\t1794\t394\t238\t206\t680\r\n435\t1703\t1385\t1461\t213\t1211\t192\t1553\t1580\t197\t571\t195\t326\t1491\t869\t1282\r\n109\t104\t3033\t120\t652\t2752\t1822\t2518\t1289\t1053\t1397\t951\t3015\t3016\t125\t1782\r\n2025\t1920\t1891\t99\t1057\t1909\t2237\t106\t97\t920\t603\t1841\t2150\t1980\t1970\t88\r\n1870\t170\t167\t176\t306\t1909\t1825\t1709\t168\t1400\t359\t817\t1678\t1718\t1594\t1552\r\n98\t81\t216\t677\t572\t295\t38\t574\t403\t74\t91\t534\t662\t588\t511\t51\r\n453\t1153\t666\t695\t63\t69\t68\t58\t524\t1088\t75\t1117\t1192\t1232\t1046\t443\r\n3893\t441\t1825\t3730\t3660\t115\t4503\t4105\t3495\t4092\t48\t3852\t132\t156\t150\t4229\r\n867\t44\t571\t40\t884\t922\t418\t328\t901\t845\t42\t860\t932\t53\t432\t569\r\n905\t717\t162\t4536\t4219\t179\t990\t374\t4409\t4821\t393\t4181\t4054\t4958\t186\t193\r\n2610\t2936\t218\t2552\t3281\t761\t204\t3433\t3699\t2727\t3065\t3624\t193\t926\t1866\t236\r\n2602\t216\t495\t3733\t183\t4688\t2893\t4042\t3066\t3810\t189\t4392\t3900\t4321\t2814\t159\r\n166\t136\t80\t185\t135\t78\t177\t123\t82\t150\t121\t145\t115\t63\t68\t24\r\n214\t221\t265\t766\t959\t1038\t226\t1188\t1122\t117\t458\t1105\t1285\t1017\t274\t281 \r\n";
|
|
8
|
-
const list = data.split("");
|
|
9
|
-
/** unused: const idx = 0 **/
|
|
10
|
-
let value = 0;
|
|
11
|
-
let n_idx = 1;
|
|
12
|
-
let min = 0;
|
|
13
|
-
let max = 0;
|
|
14
|
-
let total = 0;
|
|
15
|
-
list.forEach(((item, index) => {
|
|
16
|
-
const iValue = isNaN( parseInt(item) ) ? undefined : parseInt(item);
|
|
17
|
-
if ( typeof(iValue) !== "undefined" ) {
|
|
18
|
-
value = (iValue) + (value * 10);
|
|
19
|
-
n_idx = n_idx + 1;
|
|
20
|
-
} else {
|
|
21
|
-
if ( n_idx > 1 ) {
|
|
22
|
-
if ( (min == 0) && (max == 0) ) {
|
|
23
|
-
min = value;
|
|
24
|
-
max = value;
|
|
25
|
-
} else {
|
|
26
|
-
if ( min > value ) {
|
|
27
|
-
min = value;
|
|
28
|
-
}
|
|
29
|
-
if ( max < value ) {
|
|
30
|
-
max = value;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
value = 0;
|
|
35
|
-
n_idx = 1;
|
|
36
|
-
if ( ((item.charCodeAt(0 )) == (10)) || ((item.charCodeAt(0 )) == (13)) ) {
|
|
37
|
-
total = total + (max - min);
|
|
38
|
-
max = 0;
|
|
39
|
-
min = 0;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}));
|
|
43
|
-
console.log("Total == " + total);
|
|
44
|
-
}
|
|
45
|
-
__js_main();
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
|
|
3
|
-
class day_two {
|
|
4
|
-
function __construct( ) {
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
/* static PHP main routine */
|
|
8
|
-
$data = "\r\n3751\t3769\t2769\t2039\t2794\t240\t3579\t1228\t4291\t220\t324\t3960\t211\t1346\t237\t1586\r\n550\t589\t538\t110\t167\t567\t99\t203\t524\t288\t500\t111\t118\t185\t505\t74\r\n2127\t1904\t199\t221\t1201\t250\t1119\t377\t1633\t1801\t2011\t1794\t394\t238\t206\t680\r\n435\t1703\t1385\t1461\t213\t1211\t192\t1553\t1580\t197\t571\t195\t326\t1491\t869\t1282\r\n109\t104\t3033\t120\t652\t2752\t1822\t2518\t1289\t1053\t1397\t951\t3015\t3016\t125\t1782\r\n2025\t1920\t1891\t99\t1057\t1909\t2237\t106\t97\t920\t603\t1841\t2150\t1980\t1970\t88\r\n1870\t170\t167\t176\t306\t1909\t1825\t1709\t168\t1400\t359\t817\t1678\t1718\t1594\t1552\r\n98\t81\t216\t677\t572\t295\t38\t574\t403\t74\t91\t534\t662\t588\t511\t51\r\n453\t1153\t666\t695\t63\t69\t68\t58\t524\t1088\t75\t1117\t1192\t1232\t1046\t443\r\n3893\t441\t1825\t3730\t3660\t115\t4503\t4105\t3495\t4092\t48\t3852\t132\t156\t150\t4229\r\n867\t44\t571\t40\t884\t922\t418\t328\t901\t845\t42\t860\t932\t53\t432\t569\r\n905\t717\t162\t4536\t4219\t179\t990\t374\t4409\t4821\t393\t4181\t4054\t4958\t186\t193\r\n2610\t2936\t218\t2552\t3281\t761\t204\t3433\t3699\t2727\t3065\t3624\t193\t926\t1866\t236\r\n2602\t216\t495\t3733\t183\t4688\t2893\t4042\t3066\t3810\t189\t4392\t3900\t4321\t2814\t159\r\n166\t136\t80\t185\t135\t78\t177\t123\t82\t150\t121\t145\t115\t63\t68\t24\r\n214\t221\t265\t766\t959\t1038\t226\t1188\t1122\t117\t458\t1105\t1285\t1017\t274\t281 \r\n";
|
|
9
|
-
$list = strlen("") == 0 ? str_split($data) : explode("", $data);
|
|
10
|
-
/** unused: $idx = 0 **/ ;
|
|
11
|
-
$value = 0;
|
|
12
|
-
$n_idx = 1;
|
|
13
|
-
$min = 0;
|
|
14
|
-
$max = 0;
|
|
15
|
-
$total = 0;
|
|
16
|
-
operatorsOf::forEach_2($list, (function ($item, $index) use ( &$value, &$n_idx, &$min, &$max, &$total) {
|
|
17
|
-
$iValue = is_numeric($item) ? intval($item) : NULL ;
|
|
18
|
-
if ( (isset($iValue)) ) {
|
|
19
|
-
$value = ($iValue) + ($value * 10);
|
|
20
|
-
$n_idx = $n_idx + 1;
|
|
21
|
-
} else {
|
|
22
|
-
if ( $n_idx > 1 ) {
|
|
23
|
-
if ( ($min == 0) && ($max == 0) ) {
|
|
24
|
-
$min = $value;
|
|
25
|
-
$max = $value;
|
|
26
|
-
} else {
|
|
27
|
-
if ( $min > $value ) {
|
|
28
|
-
$min = $value;
|
|
29
|
-
}
|
|
30
|
-
if ( $max < $value ) {
|
|
31
|
-
$max = $value;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
$value = 0;
|
|
36
|
-
$n_idx = 1;
|
|
37
|
-
if ( ((ord($item[0])) == (10)) || ((ord($item[0])) == (13)) ) {
|
|
38
|
-
$total = $total + ($max - $min);
|
|
39
|
-
$max = 0;
|
|
40
|
-
$min = 0;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
// captured var value
|
|
44
|
-
// captured var n_idx
|
|
45
|
-
// captured var min
|
|
46
|
-
// captured var max
|
|
47
|
-
// captured var total
|
|
48
|
-
}));
|
|
49
|
-
echo( "Total == " . $total . "\n");
|
|
50
|
-
class operatorsOf {
|
|
51
|
-
function __construct( ) {
|
|
52
|
-
}
|
|
53
|
-
public static function forEach_2( $__self , $cb ) {
|
|
54
|
-
for ( $i = 0; $i < count($__self); $i++) {
|
|
55
|
-
$it = $__self[$i];
|
|
56
|
-
call_user_func($cb, $it, $i);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import scala.collection.mutable
|
|
2
|
-
import scala.util.Try
|
|
3
|
-
case class ScalaReturnValue(value:Any) extends Exception
|
|
4
|
-
|
|
5
|
-
// ----------- the scalafiddle main function begins ---------
|
|
6
|
-
val data : String = "\r\n3751\t3769\t2769\t2039\t2794\t240\t3579\t1228\t4291\t220\t324\t3960\t211\t1346\t237\t1586\r\n550\t589\t538\t110\t167\t567\t99\t203\t524\t288\t500\t111\t118\t185\t505\t74\r\n2127\t1904\t199\t221\t1201\t250\t1119\t377\t1633\t1801\t2011\t1794\t394\t238\t206\t680\r\n435\t1703\t1385\t1461\t213\t1211\t192\t1553\t1580\t197\t571\t195\t326\t1491\t869\t1282\r\n109\t104\t3033\t120\t652\t2752\t1822\t2518\t1289\t1053\t1397\t951\t3015\t3016\t125\t1782\r\n2025\t1920\t1891\t99\t1057\t1909\t2237\t106\t97\t920\t603\t1841\t2150\t1980\t1970\t88\r\n1870\t170\t167\t176\t306\t1909\t1825\t1709\t168\t1400\t359\t817\t1678\t1718\t1594\t1552\r\n98\t81\t216\t677\t572\t295\t38\t574\t403\t74\t91\t534\t662\t588\t511\t51\r\n453\t1153\t666\t695\t63\t69\t68\t58\t524\t1088\t75\t1117\t1192\t1232\t1046\t443\r\n3893\t441\t1825\t3730\t3660\t115\t4503\t4105\t3495\t4092\t48\t3852\t132\t156\t150\t4229\r\n867\t44\t571\t40\t884\t922\t418\t328\t901\t845\t42\t860\t932\t53\t432\t569\r\n905\t717\t162\t4536\t4219\t179\t990\t374\t4409\t4821\t393\t4181\t4054\t4958\t186\t193\r\n2610\t2936\t218\t2552\t3281\t761\t204\t3433\t3699\t2727\t3065\t3624\t193\t926\t1866\t236\r\n2602\t216\t495\t3733\t183\t4688\t2893\t4042\t3066\t3810\t189\t4392\t3900\t4321\t2814\t159\r\n166\t136\t80\t185\t135\t78\t177\t123\t82\t150\t121\t145\t115\t63\t68\t24\r\n214\t221\t265\t766\t959\t1038\t226\t1188\t1122\t117\t458\t1105\t1285\t1017\t274\t281 \r\n"
|
|
7
|
-
val list : collection.mutable.ArrayBuffer[String] = data.split("").to[collection.mutable.ArrayBuffer]
|
|
8
|
-
/** unused val idx : Int = 0**/
|
|
9
|
-
var value : Int = 0
|
|
10
|
-
var n_idx : Int = 1
|
|
11
|
-
var min : Int = 0
|
|
12
|
-
var max : Int = 0
|
|
13
|
-
var total : Int = 0
|
|
14
|
-
operatorsOf.forEach_2(list, ((item : String, index : Int) => {
|
|
15
|
-
val iValue : Option[Int] = Try(item.toInt).toOption
|
|
16
|
-
if ( iValue.isDefined ) {
|
|
17
|
-
value = (iValue.get) + (value * 10)
|
|
18
|
-
n_idx = n_idx + 1
|
|
19
|
-
} else {
|
|
20
|
-
if ( n_idx > 1 ) {
|
|
21
|
-
if ( (min == 0) && (max == 0) ) {
|
|
22
|
-
min = value
|
|
23
|
-
max = value
|
|
24
|
-
} else {
|
|
25
|
-
if ( min > value ) {
|
|
26
|
-
min = value
|
|
27
|
-
}
|
|
28
|
-
if ( max < value ) {
|
|
29
|
-
max = value
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
value = 0
|
|
34
|
-
n_idx = 1
|
|
35
|
-
if ( ((item(0)) == (10)) || ((item(0)) == (13)) ) {
|
|
36
|
-
total = total + (max - min)
|
|
37
|
-
max = 0
|
|
38
|
-
min = 0
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}));
|
|
42
|
-
println( "Total == " + total )
|
|
43
|
-
// ----------- the scalafiddle main function ends ---------
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// companion object for static methods of operatorsOf static cnt == 1
|
|
47
|
-
object operatorsOf {
|
|
48
|
-
def forEach_2( __self : collection.mutable.ArrayBuffer[String], cb : (String, Int)=> Unit) : Unit = {
|
|
49
|
-
for( i <- 0 until __self.length ) {
|
|
50
|
-
val it = __self(i)
|
|
51
|
-
cb(it, i);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import Foundation
|
|
2
|
-
func ==(l: day_two, r: day_two) -> Bool {
|
|
3
|
-
return l === r
|
|
4
|
-
}
|
|
5
|
-
class day_two : Equatable {
|
|
6
|
-
}
|
|
7
|
-
func ==(l: operatorsOf, r: operatorsOf) -> Bool {
|
|
8
|
-
return l === r
|
|
9
|
-
}
|
|
10
|
-
class operatorsOf : Equatable {
|
|
11
|
-
class func forEach_2(__self : [String], cb : @escaping (( _ : String, _ : Int) -> Void)) -> Void {
|
|
12
|
-
for ( i , it ) in __self.enumerated() {
|
|
13
|
-
cb(it, i);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
func __main__swift() {
|
|
18
|
-
let data : String = "\r\n3751\t3769\t2769\t2039\t2794\t240\t3579\t1228\t4291\t220\t324\t3960\t211\t1346\t237\t1586\r\n550\t589\t538\t110\t167\t567\t99\t203\t524\t288\t500\t111\t118\t185\t505\t74\r\n2127\t1904\t199\t221\t1201\t250\t1119\t377\t1633\t1801\t2011\t1794\t394\t238\t206\t680\r\n435\t1703\t1385\t1461\t213\t1211\t192\t1553\t1580\t197\t571\t195\t326\t1491\t869\t1282\r\n109\t104\t3033\t120\t652\t2752\t1822\t2518\t1289\t1053\t1397\t951\t3015\t3016\t125\t1782\r\n2025\t1920\t1891\t99\t1057\t1909\t2237\t106\t97\t920\t603\t1841\t2150\t1980\t1970\t88\r\n1870\t170\t167\t176\t306\t1909\t1825\t1709\t168\t1400\t359\t817\t1678\t1718\t1594\t1552\r\n98\t81\t216\t677\t572\t295\t38\t574\t403\t74\t91\t534\t662\t588\t511\t51\r\n453\t1153\t666\t695\t63\t69\t68\t58\t524\t1088\t75\t1117\t1192\t1232\t1046\t443\r\n3893\t441\t1825\t3730\t3660\t115\t4503\t4105\t3495\t4092\t48\t3852\t132\t156\t150\t4229\r\n867\t44\t571\t40\t884\t922\t418\t328\t901\t845\t42\t860\t932\t53\t432\t569\r\n905\t717\t162\t4536\t4219\t179\t990\t374\t4409\t4821\t393\t4181\t4054\t4958\t186\t193\r\n2610\t2936\t218\t2552\t3281\t761\t204\t3433\t3699\t2727\t3065\t3624\t193\t926\t1866\t236\r\n2602\t216\t495\t3733\t183\t4688\t2893\t4042\t3066\t3810\t189\t4392\t3900\t4321\t2814\t159\r\n166\t136\t80\t185\t135\t78\t177\t123\t82\t150\t121\t145\t115\t63\t68\t24\r\n214\t221\t265\t766\t959\t1038\t226\t1188\t1122\t117\t458\t1105\t1285\t1017\t274\t281 \r\n"
|
|
19
|
-
let list : [String] = "".characters.count == 0 ? Array(data.characters).map { String($0) } : data.components( separatedBy : "")
|
|
20
|
-
/** unused: let idx : Int = 0 **/
|
|
21
|
-
var value : Int = 0
|
|
22
|
-
var n_idx : Int = 1
|
|
23
|
-
var min : Int = 0
|
|
24
|
-
var max : Int = 0
|
|
25
|
-
var total : Int = 0
|
|
26
|
-
operatorsOf.forEach_2(__self : list, cb : ({ (item, index) -> Void in
|
|
27
|
-
let iValue : Int? = Int(item)
|
|
28
|
-
if ( iValue != nil ) {
|
|
29
|
-
value = (iValue!) + (value * 10);
|
|
30
|
-
n_idx = n_idx + 1;
|
|
31
|
-
} else {
|
|
32
|
-
if ( n_idx > 1 ) {
|
|
33
|
-
if ( (min == 0) && (max == 0) ) {
|
|
34
|
-
min = value;
|
|
35
|
-
max = value;
|
|
36
|
-
} else {
|
|
37
|
-
if ( min > value ) {
|
|
38
|
-
min = value;
|
|
39
|
-
}
|
|
40
|
-
if ( max < value ) {
|
|
41
|
-
max = value;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
value = 0;
|
|
46
|
-
n_idx = 1;
|
|
47
|
-
if ( ((Int( ( NSString(string: item ) ).character( at: 0 ) )) == (10)) || ((Int( ( NSString(string: item ) ).character( at: 0 ) )) == (13)) ) {
|
|
48
|
-
total = total + (max - min);
|
|
49
|
-
max = 0;
|
|
50
|
-
min = 0;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
// captured var value
|
|
54
|
-
// captured var n_idx
|
|
55
|
-
// captured var min
|
|
56
|
-
// captured var max
|
|
57
|
-
// captured var total
|
|
58
|
-
}))
|
|
59
|
-
print("Total == " + String(total))
|
|
60
|
-
}
|
|
61
|
-
// call the main function
|
|
62
|
-
__main__swift()
|