From 978d99dd038e6130e747b4838893183f7f653646 Mon Sep 17 00:00:00 2001 From: Stachu Korick Date: Fri, 12 Apr 2024 10:47:36 -0400 Subject: [PATCH] wip --- backend/fsdark.sln | 15 + backend/src/BuiltinCli/Libs/Directory.fs | 3 +- backend/src/BuiltinCli/Libs/Environment.fs | 2 +- backend/src/BuiltinCli/Libs/Execution.fs | 2 +- backend/src/BuiltinCli/Libs/File.fs | 2 +- .../BuiltinCli/Libs/LanguageServerProtocol.fs | 2 +- backend/src/BuiltinCli/Libs/Output.fs | 2 +- backend/src/BuiltinCli/Libs/Stdin.fs | 2 +- backend/src/BuiltinCli/Libs/Time.fs | 2 +- .../src/BuiltinCliHost/BuiltinCliHost.fsproj | 3 + backend/src/BuiltinCliHost/Libs/Cli.fs | 15 +- backend/src/BuiltinCloudExecution/Libs/DB.fs | 2 +- .../src/BuiltinCloudExecution/Libs/Event.fs | 2 +- backend/src/BuiltinDarkInternal/Builtin.fs | 6 +- .../src/BuiltinDarkInternal/Libs/Canvases.fs | 2 +- backend/src/BuiltinDarkInternal/Libs/DBs.fs | 2 +- .../src/BuiltinDarkInternal/Libs/Domains.fs | 2 +- backend/src/BuiltinDarkInternal/Libs/F404s.fs | 2 +- backend/src/BuiltinDarkInternal/Libs/Infra.fs | 2 +- .../src/BuiltinDarkInternal/Libs/Secrets.fs | 2 +- backend/src/BuiltinDarkInternal/Libs/Users.fs | 2 +- .../src/BuiltinDarkInternal/Libs/Workers.fs | 2 +- backend/src/BuiltinExecution/Builtin.fs | 2 +- backend/src/BuiltinExecution/Libs/AltJson.fs | 2 +- backend/src/BuiltinExecution/Libs/Base64.fs | 4 +- backend/src/BuiltinExecution/Libs/Bool.fs | 2 +- backend/src/BuiltinExecution/Libs/Bytes.fs | 2 +- backend/src/BuiltinExecution/Libs/Char.fs | 2 +- backend/src/BuiltinExecution/Libs/Crypto.fs | 2 +- backend/src/BuiltinExecution/Libs/DateTime.fs | 2 +- backend/src/BuiltinExecution/Libs/Dict.fs | 2 +- backend/src/BuiltinExecution/Libs/Float.fs | 2 +- .../src/BuiltinExecution/Libs/HttpClient.fs | 2 +- backend/src/BuiltinExecution/Libs/Int128.fs | 2 +- backend/src/BuiltinExecution/Libs/Int16.fs | 2 +- backend/src/BuiltinExecution/Libs/Int32.fs | 2 +- backend/src/BuiltinExecution/Libs/Int64.fs | 2 +- backend/src/BuiltinExecution/Libs/Int8.fs | 2 +- backend/src/BuiltinExecution/Libs/Json.fs | 2 +- .../BuiltinExecution/Libs/LanguageTools.fs | 2 +- backend/src/BuiltinExecution/Libs/List.fs | 2 +- backend/src/BuiltinExecution/Libs/Math.fs | 2 +- backend/src/BuiltinExecution/Libs/NoModule.fs | 2 +- backend/src/BuiltinExecution/Libs/Parser.fs | 2 +- backend/src/BuiltinExecution/Libs/String.fs | 2 +- backend/src/BuiltinExecution/Libs/UInt128.fs | 2 +- backend/src/BuiltinExecution/Libs/UInt16.fs | 2 +- backend/src/BuiltinExecution/Libs/UInt32.fs | 2 +- backend/src/BuiltinExecution/Libs/UInt64.fs | 2 +- backend/src/BuiltinExecution/Libs/UInt8.fs | 2 +- backend/src/BuiltinExecution/Libs/Uuid.fs | 2 +- backend/src/BuiltinExecution/Libs/X509.fs | 2 +- backend/src/BuiltinPackagesOnDisk/Builtin.fs | 10 + .../BuiltinPackagesOnDisk.fsproj | 27 + backend/src/BuiltinPackagesOnDisk/Builtins.fs | 15 + .../BuiltinPackagesOnDisk/Libs/Packages.fs | 98 + .../Utils.fs | 19 +- .../BuiltinPackagesOnDisk/paket.references | 3 + backend/src/Cli/Cli.fs | 18 +- backend/src/Cli/Cli.fsproj | 1 + .../src/LibCloudExecution/CloudExecution.fs | 8 +- backend/src/LibExecution/Builtin.fs | 28 +- backend/src/LibExecution/Execution.fs | 2 +- .../LibExecution/ProgramTypesToDarkTypes.fs | 20 + backend/src/LibExecution/RuntimeTypes.fs | 6 +- backend/src/LibParser/NameResolver.fs | 12 +- backend/src/LocalExec/Builtins.fs | 24 +- backend/src/LocalExec/Canvas.fs | 3 - backend/src/LocalExec/LoadPackagesFromDisk.fs | 59 - backend/src/LocalExec/LocalExec.fs | 13 +- backend/src/LocalExec/LocalExec.fsproj | 5 +- backend/src/Wasm/EvalHelpers.fs | 10 +- backend/src/Wasm/Libs/Editor.fs | 2 +- backend/tests/TestUtils/LibTest.fs | 2 +- backend/tests/TestUtils/TestUtils.fs | 25 +- canvases/dark-packages/main.dark | 4 +- packages/darklang/cli/cli.dark | 19 +- packages/darklang/cli/packageViewer.dark | 2 +- .../languageTools/lsp-server/aaaa_state.dark | 2 + .../lsp-server/handleIncomingMessage.dark | 17 +- .../languageTools/lsp-server/initialize.dark | 4 +- .../languageTools/lsp-server/treeView.dark | 157 + packages/darklang/languageTools/lsp.dark | 86 - .../languageTools/packageManager.dark | 4 +- .../darklang/languageTools/programTypes.dark | 239 +- packages/darklang/prettyPrinter/packages.dark | 436 +- packages/darklang/vscode/README.md | 1 + packages/darklang/vscode/main.dark | 88 + packages/darklang/vscode/tree-view.dark | 174 + tree-sitter-darklang/src/parser.c | 7788 ++++++++--------- .../src/ServerBackedTreeDataProvider.ts | 50 + vscode-extension/client/src/extension.ts | 16 + vscode-extension/package.json | 20 +- .../logo-dark-transparent-low-margin.svg | 7 + 94 files changed, 5097 insertions(+), 4565 deletions(-) create mode 100644 backend/src/BuiltinPackagesOnDisk/Builtin.fs create mode 100644 backend/src/BuiltinPackagesOnDisk/BuiltinPackagesOnDisk.fsproj create mode 100644 backend/src/BuiltinPackagesOnDisk/Builtins.fs create mode 100644 backend/src/BuiltinPackagesOnDisk/Libs/Packages.fs rename backend/src/{LocalExec => BuiltinPackagesOnDisk}/Utils.fs (55%) create mode 100644 backend/src/BuiltinPackagesOnDisk/paket.references delete mode 100644 backend/src/LocalExec/LoadPackagesFromDisk.fs create mode 100644 packages/darklang/languageTools/lsp-server/treeView.dark delete mode 100644 packages/darklang/languageTools/lsp.dark create mode 100644 packages/darklang/vscode/README.md create mode 100644 packages/darklang/vscode/main.dark create mode 100644 packages/darklang/vscode/tree-view.dark create mode 100644 vscode-extension/client/src/ServerBackedTreeDataProvider.ts create mode 100644 vscode-extension/static/logo-dark-transparent-low-margin.svg diff --git a/backend/fsdark.sln b/backend/fsdark.sln index 2b64fa9893..2d916c6148 100644 --- a/backend/fsdark.sln +++ b/backend/fsdark.sln @@ -64,6 +64,8 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "BuiltinCliHost", "src\Built EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "LibTreeSitter", "src\LibTreeSitter\LibTreeSitter.fsproj", "{625B113A-D5DC-40A5-B833-4BA342AB4936}" EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "BuiltinPackagesOnDisk", "src\BuiltinPackagesOnDisk\BuiltinPackagesOnDisk.fsproj", "{D826D495-2AFF-4895-B216-5E8A1344609E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -377,6 +379,18 @@ Global {625B113A-D5DC-40A5-B833-4BA342AB4936}.Release|x64.Build.0 = Release|Any CPU {625B113A-D5DC-40A5-B833-4BA342AB4936}.Release|x86.ActiveCfg = Release|Any CPU {625B113A-D5DC-40A5-B833-4BA342AB4936}.Release|x86.Build.0 = Release|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Debug|x64.ActiveCfg = Debug|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Debug|x64.Build.0 = Debug|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Debug|x86.ActiveCfg = Debug|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Debug|x86.Build.0 = Debug|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Release|Any CPU.Build.0 = Release|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Release|x64.ActiveCfg = Release|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Release|x64.Build.0 = Release|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Release|x86.ActiveCfg = Release|Any CPU + {D826D495-2AFF-4895-B216-5E8A1344609E}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {B56110F0-2D27-4718-8C80-E7FDE3439A63} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470} @@ -402,5 +416,6 @@ Global {A74049E0-AD31-407B-9918-6A6A76C945C9} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470} {B199C1DE-48A2-47B4-9672-BCCB7E4F8C78} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470} {625B113A-D5DC-40A5-B833-4BA342AB4936} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470} + {D826D495-2AFF-4895-B216-5E8A1344609E} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470} EndGlobalSection EndGlobal diff --git a/backend/src/BuiltinCli/Libs/Directory.fs b/backend/src/BuiltinCli/Libs/Directory.fs index cba919a488..76eb376e06 100644 --- a/backend/src/BuiltinCli/Libs/Directory.fs +++ b/backend/src/BuiltinCli/Libs/Directory.fs @@ -101,5 +101,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] - -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCli/Libs/Environment.fs b/backend/src/BuiltinCli/Libs/Environment.fs index 954564ee42..adc73964b6 100644 --- a/backend/src/BuiltinCli/Libs/Environment.fs +++ b/backend/src/BuiltinCli/Libs/Environment.fs @@ -62,4 +62,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCli/Libs/Execution.fs b/backend/src/BuiltinCli/Libs/Execution.fs index 423cd8b152..7a59852a43 100644 --- a/backend/src/BuiltinCli/Libs/Execution.fs +++ b/backend/src/BuiltinCli/Libs/Execution.fs @@ -75,4 +75,4 @@ let fns : List = deprecated = NotDeprecated } ] let constants : List = [] -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCli/Libs/File.fs b/backend/src/BuiltinCli/Libs/File.fs index 8b9bb692e7..b92c95e1e6 100644 --- a/backend/src/BuiltinCli/Libs/File.fs +++ b/backend/src/BuiltinCli/Libs/File.fs @@ -244,4 +244,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCli/Libs/LanguageServerProtocol.fs b/backend/src/BuiltinCli/Libs/LanguageServerProtocol.fs index e4ad779e7c..88a04c8109 100644 --- a/backend/src/BuiltinCli/Libs/LanguageServerProtocol.fs +++ b/backend/src/BuiltinCli/Libs/LanguageServerProtocol.fs @@ -112,4 +112,4 @@ let fns : List = *) -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCli/Libs/Output.fs b/backend/src/BuiltinCli/Libs/Output.fs index 8cf62b22ef..5fd47f1d26 100644 --- a/backend/src/BuiltinCli/Libs/Output.fs +++ b/backend/src/BuiltinCli/Libs/Output.fs @@ -66,4 +66,4 @@ let fns : List = ] -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCli/Libs/Stdin.fs b/backend/src/BuiltinCli/Libs/Stdin.fs index 47cf01da59..c7d523a7aa 100644 --- a/backend/src/BuiltinCli/Libs/Stdin.fs +++ b/backend/src/BuiltinCli/Libs/Stdin.fs @@ -29,4 +29,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCli/Libs/Time.fs b/backend/src/BuiltinCli/Libs/Time.fs index 1832d9a38e..54d0218885 100644 --- a/backend/src/BuiltinCli/Libs/Time.fs +++ b/backend/src/BuiltinCli/Libs/Time.fs @@ -32,4 +32,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents : Builtin.Contents = (fns, constants) +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCliHost/BuiltinCliHost.fsproj b/backend/src/BuiltinCliHost/BuiltinCliHost.fsproj index c3ac14885b..f1a2b0cffe 100644 --- a/backend/src/BuiltinCliHost/BuiltinCliHost.fsproj +++ b/backend/src/BuiltinCliHost/BuiltinCliHost.fsproj @@ -16,8 +16,11 @@ + + + diff --git a/backend/src/BuiltinCliHost/Libs/Cli.fs b/backend/src/BuiltinCliHost/Libs/Cli.fs index f4859bd5a1..65300d8ad7 100644 --- a/backend/src/BuiltinCliHost/Libs/Cli.fs +++ b/backend/src/BuiltinCliHost/Libs/Cli.fs @@ -71,13 +71,12 @@ module CliRuntimeError = let libExecutionContents = BuiltinExecution.Builtin.contents BuiltinExecution.Libs.HttpClient.defaultConfig -let builtIns : RT.BuiltIns = - let (fns, constants) = - LibExecution.Builtin.combine - [ libExecutionContents; BuiltinCli.Builtin.contents ] - [] - { fns = fns |> Map.fromListBy _.name - constants = constants |> Map.fromListBy _.name } +let builtIns : RT.Builtins = + LibExecution.Builtin.combine + [ libExecutionContents + BuiltinCli.Builtin.contents + BuiltinPackagesOnDisk.Builtin.contents ] + [] // TODO: de-dupe with _other_ Cli.fs let packageManagerBaseUrl = @@ -456,4 +455,4 @@ let fns : List = ] let constants : List = [] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCloudExecution/Libs/DB.fs b/backend/src/BuiltinCloudExecution/Libs/DB.fs index 2ba4f7218c..8bfe0ead3c 100644 --- a/backend/src/BuiltinCloudExecution/Libs/DB.fs +++ b/backend/src/BuiltinCloudExecution/Libs/DB.fs @@ -442,4 +442,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinCloudExecution/Libs/Event.fs b/backend/src/BuiltinCloudExecution/Libs/Event.fs index 12532b7d32..2950bd81a3 100644 --- a/backend/src/BuiltinCloudExecution/Libs/Event.fs +++ b/backend/src/BuiltinCloudExecution/Libs/Event.fs @@ -38,4 +38,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Builtin.fs b/backend/src/BuiltinDarkInternal/Builtin.fs index 6e4b83ac7b..b9fb6dc833 100644 --- a/backend/src/BuiltinDarkInternal/Builtin.fs +++ b/backend/src/BuiltinDarkInternal/Builtin.fs @@ -41,5 +41,7 @@ let contents = Libs.Users.contents Libs.Workers.contents ] fnRenames - |> (fun (fns, constants) -> - (fns |> List.map (fun f -> { f with fn = internalFn f.fn }), constants)) + + |> fun builtins -> + { builtins with + fns = Map.map (fun fn -> { fn with fn = internalFn fn.fn }) builtins.fns } diff --git a/backend/src/BuiltinDarkInternal/Libs/Canvases.fs b/backend/src/BuiltinDarkInternal/Libs/Canvases.fs index 163305417c..c348ceeadf 100644 --- a/backend/src/BuiltinDarkInternal/Libs/Canvases.fs +++ b/backend/src/BuiltinDarkInternal/Libs/Canvases.fs @@ -210,4 +210,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Libs/DBs.fs b/backend/src/BuiltinDarkInternal/Libs/DBs.fs index a2210ce23c..565876e288 100644 --- a/backend/src/BuiltinDarkInternal/Libs/DBs.fs +++ b/backend/src/BuiltinDarkInternal/Libs/DBs.fs @@ -50,4 +50,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Libs/Domains.fs b/backend/src/BuiltinDarkInternal/Libs/Domains.fs index 553dc04921..ad346959ac 100644 --- a/backend/src/BuiltinDarkInternal/Libs/Domains.fs +++ b/backend/src/BuiltinDarkInternal/Libs/Domains.fs @@ -55,4 +55,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Libs/F404s.fs b/backend/src/BuiltinDarkInternal/Libs/F404s.fs index 4c1ccabe8e..501c3965bd 100644 --- a/backend/src/BuiltinDarkInternal/Libs/F404s.fs +++ b/backend/src/BuiltinDarkInternal/Libs/F404s.fs @@ -64,4 +64,4 @@ let fns : List = [] // previewable = Impure // deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Libs/Infra.fs b/backend/src/BuiltinDarkInternal/Libs/Infra.fs index dff42aba33..82df531fbb 100644 --- a/backend/src/BuiltinDarkInternal/Libs/Infra.fs +++ b/backend/src/BuiltinDarkInternal/Libs/Infra.fs @@ -134,4 +134,4 @@ human-readable data." deprecated = NotDeprecated } ] let constants : List = [] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Libs/Secrets.fs b/backend/src/BuiltinDarkInternal/Libs/Secrets.fs index d682cebb13..f1b39f153d 100644 --- a/backend/src/BuiltinDarkInternal/Libs/Secrets.fs +++ b/backend/src/BuiltinDarkInternal/Libs/Secrets.fs @@ -99,4 +99,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Libs/Users.fs b/backend/src/BuiltinDarkInternal/Libs/Users.fs index 273128f898..2d9075252f 100644 --- a/backend/src/BuiltinDarkInternal/Libs/Users.fs +++ b/backend/src/BuiltinDarkInternal/Libs/Users.fs @@ -29,4 +29,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinDarkInternal/Libs/Workers.fs b/backend/src/BuiltinDarkInternal/Libs/Workers.fs index 113246cc62..454ecf37f4 100644 --- a/backend/src/BuiltinDarkInternal/Libs/Workers.fs +++ b/backend/src/BuiltinDarkInternal/Libs/Workers.fs @@ -143,4 +143,4 @@ let fns : List = deprecated = NotDeprecated } ] let constants : List = [] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Builtin.fs b/backend/src/BuiltinExecution/Builtin.fs index 919d95de0d..99fdf00182 100644 --- a/backend/src/BuiltinExecution/Builtin.fs +++ b/backend/src/BuiltinExecution/Builtin.fs @@ -10,7 +10,7 @@ let fnRenames = // eg: fn "Http" "respond" 0, fn "Http" "response" 0 [] -let contents (httpConfig : Libs.HttpClient.Configuration) : Builtin.Contents = +let contents (httpConfig : Libs.HttpClient.Configuration) : Builtins = Builtin.combine [ Libs.Bool.contents Libs.Base64.contents diff --git a/backend/src/BuiltinExecution/Libs/AltJson.fs b/backend/src/BuiltinExecution/Libs/AltJson.fs index acecbb3d76..30c3704a3a 100644 --- a/backend/src/BuiltinExecution/Libs/AltJson.fs +++ b/backend/src/BuiltinExecution/Libs/AltJson.fs @@ -228,4 +228,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Base64.fs b/backend/src/BuiltinExecution/Libs/Base64.fs index a73ca4afd0..20344abdcd 100644 --- a/backend/src/BuiltinExecution/Libs/Base64.fs +++ b/backend/src/BuiltinExecution/Libs/Base64.fs @@ -13,8 +13,6 @@ module Dval = LibExecution.Dval let constants : List = [] - - let fns : List = [ { name = fn "base64Decode" 0 typeParams = [] @@ -102,4 +100,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Bool.fs b/backend/src/BuiltinExecution/Libs/Bool.fs index 3b47020d54..c0a1806021 100644 --- a/backend/src/BuiltinExecution/Libs/Bool.fs +++ b/backend/src/BuiltinExecution/Libs/Bool.fs @@ -28,4 +28,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Bytes.fs b/backend/src/BuiltinExecution/Libs/Bytes.fs index 04abe72cc9..dc95222f7e 100644 --- a/backend/src/BuiltinExecution/Libs/Bytes.fs +++ b/backend/src/BuiltinExecution/Libs/Bytes.fs @@ -44,4 +44,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Char.fs b/backend/src/BuiltinExecution/Libs/Char.fs index c863eb9049..67785183cb 100644 --- a/backend/src/BuiltinExecution/Libs/Char.fs +++ b/backend/src/BuiltinExecution/Libs/Char.fs @@ -138,4 +138,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Crypto.fs b/backend/src/BuiltinExecution/Libs/Crypto.fs index d075aad3a6..6a6b02ee5d 100644 --- a/backend/src/BuiltinExecution/Libs/Crypto.fs +++ b/backend/src/BuiltinExecution/Libs/Crypto.fs @@ -113,4 +113,4 @@ let fns : List = previewable = ImpurePreviewable deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/DateTime.fs b/backend/src/BuiltinExecution/Libs/DateTime.fs index cc6ba9e4f4..f3c86a839a 100644 --- a/backend/src/BuiltinExecution/Libs/DateTime.fs +++ b/backend/src/BuiltinExecution/Libs/DateTime.fs @@ -397,4 +397,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Dict.fs b/backend/src/BuiltinExecution/Libs/Dict.fs index 0edd4a4a8c..9af97df00b 100644 --- a/backend/src/BuiltinExecution/Libs/Dict.fs +++ b/backend/src/BuiltinExecution/Libs/Dict.fs @@ -428,4 +428,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Float.fs b/backend/src/BuiltinExecution/Libs/Float.fs index 9c9fbb6f24..82284f83ff 100644 --- a/backend/src/BuiltinExecution/Libs/Float.fs +++ b/backend/src/BuiltinExecution/Libs/Float.fs @@ -347,4 +347,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/HttpClient.fs b/backend/src/BuiltinExecution/Libs/HttpClient.fs index 2fc15f095a..beb68aa7e9 100644 --- a/backend/src/BuiltinExecution/Libs/HttpClient.fs +++ b/backend/src/BuiltinExecution/Libs/HttpClient.fs @@ -535,4 +535,4 @@ let fns (config : Configuration) : List = let constants : List = [] -let contents config = (fns config, constants) +let contents config : Builtins = Builtin.fromContents constants (fns config) diff --git a/backend/src/BuiltinExecution/Libs/Int128.fs b/backend/src/BuiltinExecution/Libs/Int128.fs index 744335c66c..95f20913ed 100644 --- a/backend/src/BuiltinExecution/Libs/Int128.fs +++ b/backend/src/BuiltinExecution/Libs/Int128.fs @@ -472,4 +472,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Int16.fs b/backend/src/BuiltinExecution/Libs/Int16.fs index 9d6a30855d..b1125a0049 100644 --- a/backend/src/BuiltinExecution/Libs/Int16.fs +++ b/backend/src/BuiltinExecution/Libs/Int16.fs @@ -567,4 +567,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Int32.fs b/backend/src/BuiltinExecution/Libs/Int32.fs index 5eea159002..4c6ed69377 100644 --- a/backend/src/BuiltinExecution/Libs/Int32.fs +++ b/backend/src/BuiltinExecution/Libs/Int32.fs @@ -521,4 +521,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Int64.fs b/backend/src/BuiltinExecution/Libs/Int64.fs index 42039da0e0..24cc890bcc 100644 --- a/backend/src/BuiltinExecution/Libs/Int64.fs +++ b/backend/src/BuiltinExecution/Libs/Int64.fs @@ -576,4 +576,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Int8.fs b/backend/src/BuiltinExecution/Libs/Int8.fs index a7f486fd91..c35cfed8d0 100644 --- a/backend/src/BuiltinExecution/Libs/Int8.fs +++ b/backend/src/BuiltinExecution/Libs/Int8.fs @@ -576,4 +576,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Json.fs b/backend/src/BuiltinExecution/Libs/Json.fs index 164816a19f..a4332c27a0 100644 --- a/backend/src/BuiltinExecution/Libs/Json.fs +++ b/backend/src/BuiltinExecution/Libs/Json.fs @@ -861,4 +861,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/LanguageTools.fs b/backend/src/BuiltinExecution/Libs/LanguageTools.fs index a1ded01077..2d1e66f0c4 100644 --- a/backend/src/BuiltinExecution/Libs/LanguageTools.fs +++ b/backend/src/BuiltinExecution/Libs/LanguageTools.fs @@ -65,4 +65,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/List.fs b/backend/src/BuiltinExecution/Libs/List.fs index 9454437ca6..f840ac88f6 100644 --- a/backend/src/BuiltinExecution/Libs/List.fs +++ b/backend/src/BuiltinExecution/Libs/List.fs @@ -699,4 +699,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Math.fs b/backend/src/BuiltinExecution/Libs/Math.fs index 7aca19e553..2e2c25a7c1 100644 --- a/backend/src/BuiltinExecution/Libs/Math.fs +++ b/backend/src/BuiltinExecution/Libs/Math.fs @@ -211,4 +211,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/NoModule.fs b/backend/src/BuiltinExecution/Libs/NoModule.fs index 9c566fcca1..5eb52b32c5 100644 --- a/backend/src/BuiltinExecution/Libs/NoModule.fs +++ b/backend/src/BuiltinExecution/Libs/NoModule.fs @@ -429,4 +429,4 @@ let fns : List = deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Parser.fs b/backend/src/BuiltinExecution/Libs/Parser.fs index b7e2b504c3..bdaa640a74 100644 --- a/backend/src/BuiltinExecution/Libs/Parser.fs +++ b/backend/src/BuiltinExecution/Libs/Parser.fs @@ -111,4 +111,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/String.fs b/backend/src/BuiltinExecution/Libs/String.fs index 8b3ebac6cc..ae2dce3658 100644 --- a/backend/src/BuiltinExecution/Libs/String.fs +++ b/backend/src/BuiltinExecution/Libs/String.fs @@ -485,4 +485,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/UInt128.fs b/backend/src/BuiltinExecution/Libs/UInt128.fs index 529a5727a0..bfd0f3c16e 100644 --- a/backend/src/BuiltinExecution/Libs/UInt128.fs +++ b/backend/src/BuiltinExecution/Libs/UInt128.fs @@ -353,4 +353,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/UInt16.fs b/backend/src/BuiltinExecution/Libs/UInt16.fs index b72213cc29..15333b18ca 100644 --- a/backend/src/BuiltinExecution/Libs/UInt16.fs +++ b/backend/src/BuiltinExecution/Libs/UInt16.fs @@ -520,4 +520,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/UInt32.fs b/backend/src/BuiltinExecution/Libs/UInt32.fs index 692c562ddf..fe9bed71e9 100644 --- a/backend/src/BuiltinExecution/Libs/UInt32.fs +++ b/backend/src/BuiltinExecution/Libs/UInt32.fs @@ -513,4 +513,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/UInt64.fs b/backend/src/BuiltinExecution/Libs/UInt64.fs index 21d43babf3..df36fe124c 100644 --- a/backend/src/BuiltinExecution/Libs/UInt64.fs +++ b/backend/src/BuiltinExecution/Libs/UInt64.fs @@ -504,4 +504,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/UInt8.fs b/backend/src/BuiltinExecution/Libs/UInt8.fs index 155560c7ca..1954d56a12 100644 --- a/backend/src/BuiltinExecution/Libs/UInt8.fs +++ b/backend/src/BuiltinExecution/Libs/UInt8.fs @@ -506,4 +506,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/Uuid.fs b/backend/src/BuiltinExecution/Libs/Uuid.fs index 97d2d9baea..c494a7ea85 100644 --- a/backend/src/BuiltinExecution/Libs/Uuid.fs +++ b/backend/src/BuiltinExecution/Libs/Uuid.fs @@ -93,4 +93,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinExecution/Libs/X509.fs b/backend/src/BuiltinExecution/Libs/X509.fs index 2b38d5abc9..fb857ee0eb 100644 --- a/backend/src/BuiltinExecution/Libs/X509.fs +++ b/backend/src/BuiltinExecution/Libs/X509.fs @@ -57,4 +57,4 @@ let fns : List = previewable = Impure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/src/BuiltinPackagesOnDisk/Builtin.fs b/backend/src/BuiltinPackagesOnDisk/Builtin.fs new file mode 100644 index 0000000000..8ecab3c2a6 --- /dev/null +++ b/backend/src/BuiltinPackagesOnDisk/Builtin.fs @@ -0,0 +1,10 @@ +module BuiltinPackagesOnDisk.Builtin + +module Builtin = LibExecution.Builtin + +let fnRenames : Builtin.FnRenames = + // old names, new names + // eg: fn "Http" "respond" 0, fn "Http" "response" 0 + [] + +let contents = Builtin.combine [ Libs.Packages.contents ] fnRenames diff --git a/backend/src/BuiltinPackagesOnDisk/BuiltinPackagesOnDisk.fsproj b/backend/src/BuiltinPackagesOnDisk/BuiltinPackagesOnDisk.fsproj new file mode 100644 index 0000000000..25bf012ddc --- /dev/null +++ b/backend/src/BuiltinPackagesOnDisk/BuiltinPackagesOnDisk.fsproj @@ -0,0 +1,27 @@ + + + Library + net8.0 + 8.0 + + false + false + + + + + + + + + + + + + + + + + + + diff --git a/backend/src/BuiltinPackagesOnDisk/Builtins.fs b/backend/src/BuiltinPackagesOnDisk/Builtins.fs new file mode 100644 index 0000000000..64dd66cc8b --- /dev/null +++ b/backend/src/BuiltinPackagesOnDisk/Builtins.fs @@ -0,0 +1,15 @@ +module BuiltinPackagesOnDisk.Builtins + +open Prelude + +module RT = LibExecution.RuntimeTypes + +/// for parsing packages, which may reference _any_ builtin +let all : RT.Builtins = + LibExecution.Builtin.combine + [ BuiltinExecution.Builtin.contents + BuiltinExecution.Libs.HttpClient.defaultConfig + BuiltinCli.Builtin.contents + BuiltinCloudExecution.Builtin.contents // TODO: do we need this? + TestUtils.LibTest.contents ] // TODO: or this? + [] diff --git a/backend/src/BuiltinPackagesOnDisk/Libs/Packages.fs b/backend/src/BuiltinPackagesOnDisk/Libs/Packages.fs new file mode 100644 index 0000000000..1903b35f18 --- /dev/null +++ b/backend/src/BuiltinPackagesOnDisk/Libs/Packages.fs @@ -0,0 +1,98 @@ +module BuiltinPackagesOnDisk.Libs.Packages + +open System.Threading.Tasks +open FSharp.Control.Tasks + +open Prelude + +module RT = LibExecution.RuntimeTypes +module PT = LibExecution.ProgramTypes +module PT2DT = LibExecution.ProgramTypesToDarkTypes + + +open LibExecution.RuntimeTypes + +module Builtin = LibExecution.Builtin +open Builtin.Shortcuts + +open BuiltinPackagesOnDisk.Utils + +let constants : List = [] + +let rec listDirectoryRecursive (dir : string) : List = + let isNormalFile (path : string) : bool = + try + let attrs = System.IO.File.GetAttributes(path) + let isDir = attrs.HasFlag(System.IO.FileAttributes.Directory) + let exists = System.IO.File.Exists(path) || System.IO.Directory.Exists(path) + exists && not isDir + with e -> + false + + let contents = System.IO.Directory.EnumerateFileSystemEntries dir |> Seq.toList + let (files, dirs) = contents |> List.partition (fun x -> isNormalFile x) + let nested = dirs |> List.map (fun d -> listDirectoryRecursive d) |> List.flatten + dirs |> List.append files |> List.append nested + + +/// Reads and parses all .dark files in `packages` dir, +/// failing upon any individual failure +let loadFromDisk (builtins : RT.Builtins) : Ply = + uply { + let filesWithContents = + "/home/dark/app/packages" + |> listDirectoryRecursive + |> List.filter (fun x -> x |> String.endsWith ".dark") + |> List.map (fun fileName -> (fileName, System.IO.File.ReadAllText fileName)) + + // First pass, parse all the packages, allowing unresolved names + // (other package items won't be available yet) + let nameResolver = + LibParser.NameResolver.fromBuiltins builtins + |> fun nr -> { nr with allowError = true } + + let! (packagesParsedWithUnresolvedNamesAllowed : PT.Packages) = + filesWithContents + |> Ply.List.mapSequentially (fun (path, contents) -> + LibParser.Parser.parsePackageFile nameResolver path contents) + |> Ply.map PT.Packages.combine + + // Re-parse the packages, though this time we don't allow unresolved names + // (any package references that may have been unresolved a second ago should now be OK) + let nameResolver = + { nameResolver with + allowError = false + packageManager = + Some( + inMemPackageManagerFromPackages + packagesParsedWithUnresolvedNamesAllowed + ) } + + return! + filesWithContents + |> Ply.List.mapSequentially (fun (path, contents) -> + LibParser.Parser.parsePackageFile nameResolver path contents) + |> Ply.map PT.Packages.combine + } + + +let fns : List = + [ { name = fn "getPackagesFromDisk" 0 + typeParams = [] + parameters = [ Param.make "unit" TUnit "" ] + returnType = TCustomType(Ok PT2DT.Packages.typeName, []) + description = "Gets all Packages (from disk)." + fn = + (function + | _, _, [ DUnit ] -> + uply { + let! packages = loadFromDisk BuiltinPackagesOnDisk.Builtins.all + return PT2DT.Packages.toDT packages + } + | _ -> incorrectArgs ()) + sqlSpec = NotYetImplemented + previewable = Impure + deprecated = NotDeprecated } ] + + +let contents : Builtins = Builtin.fromContents constants fns diff --git a/backend/src/LocalExec/Utils.fs b/backend/src/BuiltinPackagesOnDisk/Utils.fs similarity index 55% rename from backend/src/LocalExec/Utils.fs rename to backend/src/BuiltinPackagesOnDisk/Utils.fs index 6bc5ccfde4..e899814cdc 100644 --- a/backend/src/LocalExec/Utils.fs +++ b/backend/src/BuiltinPackagesOnDisk/Utils.fs @@ -1,4 +1,4 @@ -module LocalExec.Utils +module BuiltinPackagesOnDisk.Utils open Prelude @@ -18,20 +18,3 @@ let inMemPackageManagerFromPackages (p : PT.Packages) : RT.PackageManager = getConstant = fun name -> consts |> List.find (fun c -> c.name = name) |> Ply init = uply { return () } } - - -let isNormalFile (path : string) : bool = - try - let attrs = System.IO.File.GetAttributes(path) - let isDir = attrs.HasFlag(System.IO.FileAttributes.Directory) - let exists = System.IO.File.Exists(path) || System.IO.Directory.Exists(path) - exists && not isDir - with e -> - false - - -let rec listDirectoryRecursive (dir : string) : List = - let contents = System.IO.Directory.EnumerateFileSystemEntries dir |> Seq.toList - let (files, dirs) = contents |> List.partition (fun x -> isNormalFile x) - let nested = dirs |> List.map (fun d -> listDirectoryRecursive d) |> List.flatten - dirs |> List.append files |> List.append nested diff --git a/backend/src/BuiltinPackagesOnDisk/paket.references b/backend/src/BuiltinPackagesOnDisk/paket.references new file mode 100644 index 0000000000..4b5bc5d60f --- /dev/null +++ b/backend/src/BuiltinPackagesOnDisk/paket.references @@ -0,0 +1,3 @@ +Ply +FSharp.Core +FSharpPlus \ No newline at end of file diff --git a/backend/src/Cli/Cli.fs b/backend/src/Cli/Cli.fs index df52fb74a7..5f21fef8d0 100644 --- a/backend/src/Cli/Cli.fs +++ b/backend/src/Cli/Cli.fs @@ -41,16 +41,14 @@ let info () = // Execution // --------------------- -let builtIns : RT.BuiltIns = - let (fns, constants) = - LibExecution.Builtin.combine - [ BuiltinExecution.Builtin.contents - BuiltinExecution.Libs.HttpClient.defaultConfig - BuiltinCli.Builtin.contents - BuiltinCliHost.Builtin.contents ] - [] - { fns = fns |> Map.fromListBy _.name - constants = constants |> Map.fromListBy _.name } +let builtIns : RT.Builtins = + LibExecution.Builtin.combine + [ BuiltinExecution.Builtin.contents + BuiltinExecution.Libs.HttpClient.defaultConfig + BuiltinCli.Builtin.contents + BuiltinCliHost.Builtin.contents + BuiltinPackagesOnDisk.Builtin.contents ] + [] // TODO: de-dupe with _other_ Cli.fs let packageManagerBaseUrl = diff --git a/backend/src/Cli/Cli.fsproj b/backend/src/Cli/Cli.fsproj index 0fd01a21ba..85808453f9 100644 --- a/backend/src/Cli/Cli.fsproj +++ b/backend/src/Cli/Cli.fsproj @@ -54,6 +54,7 @@ + diff --git a/backend/src/LibCloudExecution/CloudExecution.fs b/backend/src/LibCloudExecution/CloudExecution.fs index 2e46252767..f3aef125c8 100644 --- a/backend/src/LibCloudExecution/CloudExecution.fs +++ b/backend/src/LibCloudExecution/CloudExecution.fs @@ -19,16 +19,12 @@ module Interpreter = LibExecution.Interpreter open LibCloud -let builtins : LibExecution.Builtin.Contents = +let builtins : RT.Builtins = LibExecution.Builtin.combine [ BuiltinExecution.Builtin.contents HttpClient.configuration BuiltinCloudExecution.Builtin.contents BuiltinDarkInternal.Builtin.contents ] [] -let builtIns : RT.BuiltIns = - let (fns, constants) = builtins - { fns = fns |> Map.fromListBy _.name - constants = constants |> Map.fromListBy _.name } let packageManager = PackageManager.packageManager @@ -54,7 +50,7 @@ let createState LibService.Rollbar.sendException None metadata exn return - Exe.createState builtIns packageManager tracing sendException notify program + Exe.createState builtins packageManager tracing sendException notify program } type ExecutionReason = diff --git a/backend/src/LibExecution/Builtin.fs b/backend/src/LibExecution/Builtin.fs index 3fe52b8309..3180431891 100644 --- a/backend/src/LibExecution/Builtin.fs +++ b/backend/src/LibExecution/Builtin.fs @@ -6,9 +6,6 @@ open RuntimeTypes type FnRenames = List -/// All Libs should expose `contents`, which is a list of all the constants and functions it provides -type Contents = List * List - // To cut down on the amount of code, when we rename a function and make no other // changes, we don't duplicate it. Instead, we rename it and add the rename to this @@ -48,14 +45,27 @@ let checkFn (_fn : BuiltInFn) : unit = // Exception.raiseInternal $"function {fn.name} has no parameters" [ "fn", fn.name ] () -/// Provided a list of library contents, combine them (handling renames) -let combine (libs : List) (fnRenames : FnRenames) : Contents = - let (fns, constants) = List.unzip libs - - fns |> List.concat |> List.iter checkFn +/// Provided a list of Builtins, combine them (handling renames) +let combine (libs : List) (fnRenames : FnRenames) : Builtins = + { fns = + libs + |> List.map _.fns + |> List.collect Map.values + |> renameFunctions fnRenames + |> Map.fromListBy _.name - (fns |> List.concat |> renameFunctions fnRenames, constants |> List.concat) + constants = + libs + |> List.map _.constants + |> List.collect Map.values + |> Map.fromListBy _.name } +let fromContents + (constants : List) + (fns : List) + : Builtins = + { fns = fns |> Map.fromListBy _.name + constants = constants |> Map.fromListBy _.name } module Shortcuts = diff --git a/backend/src/LibExecution/Execution.fs b/backend/src/LibExecution/Execution.fs index c647d170c8..f21beb6926 100644 --- a/backend/src/LibExecution/Execution.fs +++ b/backend/src/LibExecution/Execution.fs @@ -27,7 +27,7 @@ let noTestContext : RT.TestContext = postTestExecutionHook = fun _ -> () } let createState - (builtIns : RT.BuiltIns) + (builtIns : RT.Builtins) (packageManager : RT.PackageManager) (tracing : RT.Tracing) (reportException : RT.ExceptionReporter) diff --git a/backend/src/LibExecution/ProgramTypesToDarkTypes.fs b/backend/src/LibExecution/ProgramTypesToDarkTypes.fs index c3b747a8cc..6d6947e81f 100644 --- a/backend/src/LibExecution/ProgramTypesToDarkTypes.fs +++ b/backend/src/LibExecution/ProgramTypesToDarkTypes.fs @@ -1518,6 +1518,7 @@ module Secret = module PackageType = let typeName = ptTyp [] "PackageType" 0 + let knownType = KTCustomType(typeName, []) let toDT (p : PT.PackageType.T) : Dval = let fields = @@ -1566,6 +1567,7 @@ module PackageFn = | _ -> Exception.raiseInternal "Invalid PackageFn.Parameter" [] let typeName = ptTyp [ "PackageFn" ] "PackageFn" 0 + let knownType = KTCustomType(typeName, []) let toDT (p : PT.PackageFn.T) : Dval = let fields = @@ -1608,6 +1610,7 @@ module PackageFn = module PackageConstant = let typeName = ptTyp [] "PackageConstant" 0 + let knownType = KTCustomType(typeName, []) let toDT (p : PT.PackageConstant.T) : Dval = let fields = @@ -1632,3 +1635,20 @@ module PackageConstant = deprecated = fields |> D.field "deprecated" |> Deprecation.fromDT FQConstantName.fromDT } | _ -> Exception.raiseInternal "Invalid PackageConstant" [] + + +// TODO: fromDT? not sure if we really need it +module Packages = + let typeName = ptTyp [ "Packages" ] "Packages" 0 + + let toDT (p : PT.Packages) : Dval = + let fields = + [ ("types", + DList(VT.known PackageType.knownType, List.map PackageType.toDT p.types)) + ("constants", + DList( + VT.known PackageConstant.knownType, + List.map PackageConstant.toDT p.constants + )) + ("fns", DList(VT.known PackageFn.knownType, List.map PackageFn.toDT p.fns)) ] + DRecord(typeName, typeName, [], Map fields) diff --git a/backend/src/LibExecution/RuntimeTypes.fs b/backend/src/LibExecution/RuntimeTypes.fs index 08ad36c959..abf7b84f43 100644 --- a/backend/src/LibExecution/RuntimeTypes.fs +++ b/backend/src/LibExecution/RuntimeTypes.fs @@ -1498,10 +1498,11 @@ and TestContext = postTestExecutionHook : TestContext -> unit } // Functionally written in F# and shipped with the executable -and BuiltIns = +and Builtins = { constants : Map fns : Map } + // Functionality written in Dark stored and managed outside of user space and PackageManager = { getType : FQTypeName.Package -> Ply> @@ -1526,7 +1527,7 @@ and Notifier = ExecutionState -> string -> Metadata -> unit // All state used while running a program and ExecutionState = { // -- Set consistently across a runtime -- - builtIns : BuiltIns + builtIns : Builtins tracing : Tracing test : TestContext @@ -1567,7 +1568,6 @@ and Constants = and Types = { typeSymbolTable : TypeSymbolTable - package : FQTypeName.Package -> Ply> userProgram : Map } diff --git a/backend/src/LibParser/NameResolver.fs b/backend/src/LibParser/NameResolver.fs index efa03169c4..92be51ca2c 100644 --- a/backend/src/LibParser/NameResolver.fs +++ b/backend/src/LibParser/NameResolver.fs @@ -112,13 +112,17 @@ let merge packageManager = packageManager } -let fromBuiltins ((fns, constants) : LibExecution.Builtin.Contents) : NameResolver = +let fromBuiltins (builtins : RT.Builtins) : NameResolver = { builtinFns = - fns |> List.map (fun fn -> PT2RT.FQFnName.Builtin.fromRT fn.name) |> Set.ofList + builtins.fns + |> Map.keys + |> List.map PT2RT.FQFnName.Builtin.fromRT + |> Set.ofList builtinConstants = - constants - |> List.map (fun fn -> PT2RT.FQConstantName.Builtin.fromRT fn.name) + builtins.constants + |> Map.keys + |> List.map PT2RT.FQConstantName.Builtin.fromRT |> Set.ofList userTypes = Set.empty diff --git a/backend/src/LocalExec/Builtins.fs b/backend/src/LocalExec/Builtins.fs index 8e3d6be50e..7f630b94bd 100644 --- a/backend/src/LocalExec/Builtins.fs +++ b/backend/src/LocalExec/Builtins.fs @@ -8,20 +8,18 @@ open Prelude module RT = LibExecution.RuntimeTypes /// for parsing packages, which may reference _any_ builtin -let all : RT.BuiltIns = - let (fns, constants) = - LibExecution.Builtin.combine - [ BuiltinExecution.Builtin.contents - BuiltinExecution.Libs.HttpClient.defaultConfig - BuiltinCli.Builtin.contents - BuiltinCliHost.Builtin.contents - BuiltinCloudExecution.Builtin.contents // TODO: do we need this? - TestUtils.LibTest.contents ] // TODO: or this? - [] - { fns = fns |> Map.fromListBy _.name - constants = constants |> Map.fromListBy _.name } +let all : RT.Builtins = + LibExecution.Builtin.combine + [ BuiltinExecution.Builtin.contents + BuiltinExecution.Libs.HttpClient.defaultConfig + BuiltinCli.Builtin.contents + BuiltinCliHost.Builtin.contents + BuiltinCloudExecution.Builtin.contents // TODO: do we need this? + BuiltinPackagesOnDisk.Builtin.contents + TestUtils.LibTest.contents ] // TODO: or this? + [] -let accessibleByCanvas : LibExecution.Builtin.Contents = +let accessibleByCanvas : RT.Builtins = LibExecution.Builtin.combine [ BuiltinExecution.Builtin.contents BuiltinExecution.Libs.HttpClient.defaultConfig diff --git a/backend/src/LocalExec/Canvas.fs b/backend/src/LocalExec/Canvas.fs index a160b4981f..6d77a59e5d 100644 --- a/backend/src/LocalExec/Canvas.fs +++ b/backend/src/LocalExec/Canvas.fs @@ -12,9 +12,6 @@ open LibCloud.Db module PT = LibExecution.ProgramTypes -open Utils - - let parseYamlExn<'a> (filename : string) : 'a = let contents = System.IO.File.ReadAllText filename let deserialized = Legivel.Serialization.Deserialize<'a> contents diff --git a/backend/src/LocalExec/LoadPackagesFromDisk.fs b/backend/src/LocalExec/LoadPackagesFromDisk.fs deleted file mode 100644 index f379500fe5..0000000000 --- a/backend/src/LocalExec/LoadPackagesFromDisk.fs +++ /dev/null @@ -1,59 +0,0 @@ -[] -module LocalExec.LoadPackagesFromDisk - -open System.Threading.Tasks -open FSharp.Control.Tasks - -open Prelude - -module RT = LibExecution.RuntimeTypes -module PT = LibExecution.ProgramTypes -module PT2DT = LibExecution.ProgramTypesToDarkTypes - -open Utils - -/// Reads and parses all .dark files in `packages` dir, -/// failing upon any individual failure -let load (builtins : RT.BuiltIns) : Ply = - uply { - let filesWithContents = - "/home/dark/app/packages" - |> listDirectoryRecursive - |> List.filter (fun x -> x |> String.endsWith ".dark") - |> List.map (fun fileName -> (fileName, System.IO.File.ReadAllText fileName)) - - // First pass, parse all the packages, allowing unresolved names - // (other package items won't be available yet) - let nameResolver = - LibParser.NameResolver.fromBuiltins ( - Map.values builtins.fns |> Seq.toList, - Map.values builtins.constants |> Seq.toList - ) - |> fun nr -> { nr with allowError = true } - - let! (packagesParsedWithUnresolvedNamesAllowed : PT.Packages) = - filesWithContents - // TODO: parallelize - |> Ply.List.mapSequentially (fun (path, contents) -> - //print $"Parsing {path}, allowing unresolved names" - LibParser.Parser.parsePackageFile nameResolver path contents) - |> Ply.map PT.Packages.combine - - // 3. re-parse the packages, though this time we don't allow unresolved names - // (any package references that may have been unresolved a second ago should now be OK) - let nameResolver = - { nameResolver with - allowError = false - packageManager = - Some( - inMemPackageManagerFromPackages - packagesParsedWithUnresolvedNamesAllowed - ) } - - return! - filesWithContents - |> Ply.List.mapSequentially (fun (path, contents) -> - //print $"Parsing {path}, not allowing unresolved names" - LibParser.Parser.parsePackageFile nameResolver path contents) - |> Ply.map PT.Packages.combine - } diff --git a/backend/src/LocalExec/LocalExec.fs b/backend/src/LocalExec/LocalExec.fs index 6760e963de..39392b1ac2 100644 --- a/backend/src/LocalExec/LocalExec.fs +++ b/backend/src/LocalExec/LocalExec.fs @@ -9,13 +9,14 @@ open Prelude module RT = LibExecution.RuntimeTypes module PT = LibExecution.ProgramTypes -open Utils +open BuiltinPackagesOnDisk.Utils module HandleCommand = let loadPackagesToInternalSqlTables () : Ply> = uply { // first, load the packages from disk, ensuring all parse well - let! packagesFromDisk = LoadPackagesFromDisk.load Builtins.all + let! packagesFromDisk = + BuiltinPackagesOnDisk.Libs.Packages.loadFromDisk Builtins.all let typeLen = packagesFromDisk.types |> List.length let constantLen = packagesFromDisk.constants |> List.length @@ -39,14 +40,16 @@ module HandleCommand = let reloadDarkPackagesCanvas () : Ply> = uply { // first, load the packages from disk, ensuring all parse well - let! packagesFromDisk = LoadPackagesFromDisk.load Builtins.all + let! packagesFromDisk = + BuiltinPackagesOnDisk.Libs.Packages.loadFromDisk Builtins.all let inMemPackageManager = inMemPackageManagerFromPackages packagesFromDisk // then, parse the canvas' `main.dark`, purge any previous data, and create the canvas let nameResolver = - LibParser.NameResolver.fromBuiltins Builtins.accessibleByCanvas + Builtins.all // TODO: reconsider if we need to restrict this + |> LibParser.NameResolver.fromBuiltins |> fun nr -> - { nr with packageManager = Some inMemPackageManager; allowError = false } + { nr with packageManager = Some inMemPackageManager; allowError = false } let! (canvasId, toplevels) = Canvas.loadFromDisk nameResolver "dark-packages" diff --git a/backend/src/LocalExec/LocalExec.fsproj b/backend/src/LocalExec/LocalExec.fsproj index 09893170f0..a2638637e7 100644 --- a/backend/src/LocalExec/LocalExec.fsproj +++ b/backend/src/LocalExec/LocalExec.fsproj @@ -19,17 +19,18 @@ + + + - - diff --git a/backend/src/Wasm/EvalHelpers.fs b/backend/src/Wasm/EvalHelpers.fs index 992a953656..9713a27312 100644 --- a/backend/src/Wasm/EvalHelpers.fs +++ b/backend/src/Wasm/EvalHelpers.fs @@ -5,18 +5,12 @@ open Prelude open LibExecution.RuntimeTypes let getStateForEval - (builtin : LibExecution.Builtin.Contents) + (builtins : Builtins) (types : List) (fns : List) (constants : List) - : ExecutionState = - let builtIns : BuiltIns = - let builtInFns, builtInConstants = builtin - { fns = builtInFns |> List.map (fun fn -> fn.name, fn) |> Map - constants = builtInConstants |> List.map (fun c -> c.name, c) |> Map } - // TODO let packageManager : PackageManager = PackageManager.Empty @@ -29,7 +23,7 @@ let getStateForEval constants = Map.fromListBy (_.name) constants secrets = List.empty } - { builtIns = builtIns + { builtIns = builtins tracing = LibExecution.Execution.noTracing test = LibExecution.Execution.noTestContext reportException = consoleReporter diff --git a/backend/src/Wasm/Libs/Editor.fs b/backend/src/Wasm/Libs/Editor.fs index 896ce84669..e9a1723702 100644 --- a/backend/src/Wasm/Libs/Editor.fs +++ b/backend/src/Wasm/Libs/Editor.fs @@ -171,4 +171,4 @@ let fns : List = ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/tests/TestUtils/LibTest.fs b/backend/tests/TestUtils/LibTest.fs index 0c329795dd..3a374663c9 100644 --- a/backend/tests/TestUtils/LibTest.fs +++ b/backend/tests/TestUtils/LibTest.fs @@ -276,4 +276,4 @@ let fns : List = previewable = Pure deprecated = NotDeprecated } ] -let contents = (fns, constants) +let contents : Builtins = LibExecution.Builtin.fromContents constants fns diff --git a/backend/tests/TestUtils/TestUtils.fs b/backend/tests/TestUtils/TestUtils.fs index eeb761eea6..5e215bac5c 100644 --- a/backend/tests/TestUtils/TestUtils.fs +++ b/backend/tests/TestUtils/TestUtils.fs @@ -124,17 +124,14 @@ let testDB (name : string) (typ : PT.TypeReference) : PT.DB.T = let builtIns (httpConfig : BuiltinExecution.Libs.HttpClient.Configuration) - : RT.BuiltIns = - let (fns, constants) = - LibExecution.Builtin.combine - [ LibTest.contents - BuiltinExecution.Builtin.contents httpConfig - BuiltinCloudExecution.Builtin.contents - BuiltinDarkInternal.Builtin.contents - BuiltinCli.Builtin.contents ] - [] - { fns = fns |> Map.fromListBy _.name - constants = constants |> Map.fromListBy _.name } + : RT.Builtins = + LibExecution.Builtin.combine + [ LibTest.contents + BuiltinExecution.Builtin.contents httpConfig + BuiltinCloudExecution.Builtin.contents + BuiltinDarkInternal.Builtin.contents + BuiltinCli.Builtin.contents ] + [] let cloudBuiltIns = let httpConfig = @@ -148,14 +145,12 @@ let localBuiltIns = { BuiltinExecution.Libs.HttpClient.defaultConfig with timeoutInMs = 5000 } builtIns httpConfig +// Why do we use the LibCloud PM here? let packageManager = LibCloud.PackageManager.packageManager // This resolves both builtins and package functions let nameResolver = - { LibParser.NameResolver.fromBuiltins ( - Map.values localBuiltIns.fns, - Map.values localBuiltIns.constants - ) with + { LibParser.NameResolver.fromBuiltins localBuiltIns with packageManager = Some packageManager } diff --git a/canvases/dark-packages/main.dark b/canvases/dark-packages/main.dark index 4d012a6f33..ccf80a631e 100644 --- a/canvases/dark-packages/main.dark +++ b/canvases/dark-packages/main.dark @@ -163,11 +163,11 @@ let _handler _req = | _ -> Stdlib.Option.Option.None) let respBody = - (PACKAGE.Darklang.LanguageTools.ProgramTypes.Packages + (PACKAGE.Darklang.LanguageTools.ProgramTypes.Packages.Packages { types = types fns = fns constants = constants }) - |> Builtin.jsonSerialize + |> Builtin.jsonSerialize |> Stdlib.String.toBytes Stdlib.Http.response respBody 200L \ No newline at end of file diff --git a/packages/darklang/cli/cli.dark b/packages/darklang/cli/cli.dark index 8d5a885f0e..1e6a994d0d 100644 --- a/packages/darklang/cli/cli.dark +++ b/packages/darklang/cli/cli.dark @@ -126,21 +126,22 @@ module Darklang = | Help -> Builtin.printLine """Note: If the darklang CLI is installed, you can run commands using `dark [command]`. -If it is not installed, replace `dark` with the executable's path, like `./darklang-exe-path [command]`. \n +If it is not installed, replace `dark` with the executable's path, like `./darklang-exe-path [command]`. + Usage: -dark help Show this help message and exit +dark help Show this help message and exit -dark [function name] Run a function in the package manager - i.e. `darklang @Darklang.Stdlib.Bool.and true false` +dark [function name] Run a function in the package manager + i.e. `dark @Darklang.Stdlib.Bool.and true false` -dark package Explore the contents of the package manager +dark package Explore the contents of the package manager -dark [script path] Run a .dark script - i.e. `darklang ./my-script.dark` +dark [script path] Run a .dark script + i.e. `dark ./my-script.dark` -dark install Install the darklang CLI so it's available globally in your terminal +dark install Install the darklang CLI so it's available globally in your terminal -dark update Update the darklang CLI to the latest version +dark update Update the darklang CLI to the latest version """ 0L diff --git a/packages/darklang/cli/packageViewer.dark b/packages/darklang/cli/packageViewer.dark index 71fee0dc84..f7df38bc79 100644 --- a/packages/darklang/cli/packageViewer.dark +++ b/packages/darklang/cli/packageViewer.dark @@ -62,7 +62,7 @@ module Darklang = 1L | Ok moduleContents -> let emptyModule = - LanguageTools.ProgramTypes.Packages + LanguageTools.ProgramTypes.Packages.Packages { types = []; fns = []; constants = [] } if moduleContents == emptyModule then diff --git a/packages/darklang/languageTools/lsp-server/aaaa_state.dark b/packages/darklang/languageTools/lsp-server/aaaa_state.dark index aca457eb3d..b16a22da50 100644 --- a/packages/darklang/languageTools/lsp-server/aaaa_state.dark +++ b/packages/darklang/languageTools/lsp-server/aaaa_state.dark @@ -16,4 +16,6 @@ module Darklang = /// (i.e. have been `textDocument/didOpen`ed, and not yet `textDocument/didClose`d) /// note: the string key here is the URI documentsInScope: Dict + + packages: ProgramTypes.Packages.Packages } \ No newline at end of file diff --git a/packages/darklang/languageTools/lsp-server/handleIncomingMessage.dark b/packages/darklang/languageTools/lsp-server/handleIncomingMessage.dark index 0e1e723cd9..58ff836f9f 100644 --- a/packages/darklang/languageTools/lsp-server/handleIncomingMessage.dark +++ b/packages/darklang/languageTools/lsp-server/handleIncomingMessage.dark @@ -116,9 +116,20 @@ module Darklang = // -- other | Other jsonRpcRequest -> - log $"TODO: we don't yet support this method: {jsonRpcRequest.method}" - // TODO: log more than just the method - state + let r = jsonRpcRequest + + match (r.method, r.id, r.params) with + | ("darklang/getRootNodes", Some requestId, None) -> + TreeView.handleGetRootNodesRequest state requestId + + | ("darklang/getChildNodes", + Some requestId, + Some(Object [ ("nodeId", String nodeId) ])) -> + TreeView.handleGetChildNodesRequest state requestId nodeId + + | other -> + log $"TODO: we don't yet support this method: {r.method}" + state state.documentsInScope |> Stdlib.Dict.iter (fun uri document -> diff --git a/packages/darklang/languageTools/lsp-server/initialize.dark b/packages/darklang/languageTools/lsp-server/initialize.dark index e096f230f7..8cf3b3eb3e 100644 --- a/packages/darklang/languageTools/lsp-server/initialize.dark +++ b/packages/darklang/languageTools/lsp-server/initialize.dark @@ -48,8 +48,10 @@ module Darklang = logAndSendToClient initializeResponse + let packages = Builtin.getPackagesFromDisk () LspState { initialized = true shouldShutdown = false - documentsInScope = Dict { } } \ No newline at end of file + documentsInScope = Dict { } + packages = packages } \ No newline at end of file diff --git a/packages/darklang/languageTools/lsp-server/treeView.dark b/packages/darklang/languageTools/lsp-server/treeView.dark new file mode 100644 index 0000000000..fc91206912 --- /dev/null +++ b/packages/darklang/languageTools/lsp-server/treeView.dark @@ -0,0 +1,157 @@ +module Darklang = + module LanguageTools = + module LspServer = + module TreeView = + // + type TreeItemType = VSCode.TreeView.TreeItemType.TreeItemType + + type TreeItemCollapsibleState = + VSCode.TreeView.TreeItemCollapsibleState.TreeItemCollapsibleState + + type TreeItem = VSCode.TreeView.TreeItem.TreeItem + // + + + let makeTreeItem + (id: String) + (label: String) + (collapsibleState: TreeItemCollapsibleState) + : TreeItem = + TreeItem + { id = Stdlib.Option.Option.Some id + label = + Stdlib.Option.Option.Some( + VSCode.TreeView.TreeItem.Label.Label.String label + ) + collapsibleState = collapsibleState |> Stdlib.Option.Option.Some + command = Stdlib.Option.Option.None // TODO: this should be a command to open the package + contextValue = Stdlib.Option.Option.None + checkboxState = Stdlib.Option.Option.None + accessibilityInformation = Stdlib.Option.Option.None + description = Stdlib.Option.Option.None // could include metadata about package, author, etc. + iconPath = Stdlib.Option.Option.None // TODO: based on whether it's a module, type, constant, or fn (or later: other things, like http endpoint) + resourceUri = Stdlib.Option.Option.None // TODO: this should be the URI of the package + tooltip = Stdlib.Option.Option.None } + + + /// handles `darklang/getRootNodes` requests + let handleGetRootNodesRequest + (state: LspState) + (requestId: JsonRPC.RequestId) + : LspState = + let response = + // TODO: this should be the list of packages that you have access to + // - the `darklang` package + // - (future: other globally-accessible packages) + // (anything that you've 'pinned' or whatever) + // - your account's packages (for me, `stachu`) + // - packages shared with you + [ makeTreeItem "Darklang" "Darklang" TreeItemCollapsibleState.Collapsed + makeTreeItem "Stachu" "Stachu" TreeItemCollapsibleState.Collapsed ] + + |> Stdlib.List.map (fun i -> VSCode.TreeView.TreeItem.toJson i) + |> Json.Array + + let responseJson = + response + |> (fun r -> + JsonRPC.Response.Ok.make (Stdlib.Option.Option.Some requestId) r) + |> Stdlib.AltJson.format + + logAndSendToClient responseJson + + state + + + let getModuleByParts + (allModules: List) + (parts: List) + : Stdlib.Option.Option = + match parts with + | moduleNameToLookFor :: otherModuleParts -> + // just use tryFind, since we're looking for a single module + let found = + allModules + |> Stdlib.List.findFirst (fun m -> m.name = moduleNameToLookFor) + + match found, otherModuleParts with + | Some foundModule, [] -> Stdlib.Option.Option.Some foundModule + | Some foundModule, _ -> + getModuleByParts foundModule.submodules otherModuleParts + | None, _ -> Stdlib.Option.Option.None + + + /// handles `darklang/getChildNodes` requests + let handleGetChildNodesRequest + (state: LspState) + (requestId: JsonRPC.RequestId) + (nodeId: String) + : LspState = + log "a" + + let (ownerName, moduleNameParts) = + match nodeId |> Stdlib.String.split "." with + | ownerName :: moduleNameParts -> (ownerName, moduleNameParts) + + log "bz" + + let filteredPackages = + ProgramTypes.Packages.filterToModule + state.packages + ownerName + moduleNameParts + // ahh but how do I get submodules...? + log "c" + + // let foundModule = + // (getModuleByParts modules moduleNameParts) |> Builtin.unwrap + + log "d" + + let response = + let submoduleNodes = + // foundModule.submodules + // |> Stdlib.List.map (fun m -> + // let id = $"{nodeId}.{m.name}" + // makeTreeItem id m.name TreeItemCollapsibleState.Collapsed) + [] + + let typeNodes = + // foundModule.types + // |> Stdlib.List.map (fun t -> + // let id = $"{nodeId}.{t.name}" + // // TODO: deal with t.name better... pretty-print it + // makeTreeItem id t.name TreeItemCollapsibleState.None) + [] + + let constantNodes = + // foundModule.constants + // |> Stdlib.List.map (fun c -> + // let id = $"{nodeId}.{c.name}" + // makeTreeItem id c.name TreeItemCollapsibleState.None) + [] + + let fnNodes = + // foundModule.fns + // |> Stdlib.List.map (fun f -> + // let id = $"{nodeId}.{f.name}" + // makeTreeItem id f.name TreeItemCollapsibleState.None) + [] + + (Stdlib.List.flatten + [ submoduleNodes; typeNodes; constantNodes; fnNodes ]) + |> Stdlib.List.map (fun i -> VSCode.TreeView.TreeItem.toJson i) + |> Json.Array + + log "e" + + let responseJson = + response + |> (fun r -> + JsonRPC.Response.Ok.make (Stdlib.Option.Option.Some requestId) r) + |> Stdlib.AltJson.format + + log "f" + logAndSendToClient responseJson + + state \ No newline at end of file diff --git a/packages/darklang/languageTools/lsp.dark b/packages/darklang/languageTools/lsp.dark deleted file mode 100644 index f830f4463c..0000000000 --- a/packages/darklang/languageTools/lsp.dark +++ /dev/null @@ -1,86 +0,0 @@ -module Darklang = - module LanguageTools = - // this module could be forked into something usable to build _other_ language servers, - // but that feels like a premature optimization at this point - let's see how this pans out. - // - // some of these types are somewaht general to the LSP spec, - // others are specific to our implementation - // - // Note: this was written as a backend to support a middle-man Node LSP server. This - // should all be migrated elsewhere shortly, as we remove that server in favor of - // one written in Darklang. TODO - module LanguageServerProtocol = - /// A tagging type for string properties that are actually document URIs. - type DocumentUri = String - - /// A tagging type for string properties that are actually URIs - type URI = String - - type Position = { line: Int64; character: Int64 } - - type Range = { start: Position; end_: Position } - - /// Represents a location inside a resource, such as a line inside a text file - type Location = { uri: DocumentUri; range: Range } - - // -- done with base types -- - - type ScriptParseError = - | FailedToParse of msg: String * range: Stdlib.Option.Option - | Other of msg: String - - // - - /// "Warning" | "Error" - type DiagnosticSeverity = String - - type Diagnostic = - { severity: DiagnosticSeverity - range: Range - message: String } - - type ComputeDiagnosticsOutput = { diagnostics: List } - - let getDiagnostics (uri: String) (text: String) : String = - match Builtin.languageToolsParseCliScript text with - | Ok() -> - (ComputeDiagnosticsOutput { diagnostics = [] }) - |> Builtin.jsonSerialize - - | Error parseError -> - // to be used when the range is otherwise unknown - let rangeOfAll = - let start = Position { line = 0L; character = 0L } - - let end' = - let lines = text |> Stdlib.String.split "\n" - - Position - { line = (Stdlib.List.length lines) - 1L - character = - lines - |> Stdlib.List.last - |> Builtin.unwrap - |> Stdlib.String.length } - - Range { start = start; end_ = end' } - - let diagnostics = - match parseError with - | FailedToParse(msg, range) -> - [ Diagnostic - { severity = "Error" - range = Stdlib.Option.withDefault range rangeOfAll - message = $"Can't parse -- {msg}" } ] - - | Other msg -> - [ Diagnostic - { severity = "Error" - range = rangeOfAll - message = $"Can't parse -- {msg}" } ] - - (ComputeDiagnosticsOutput { diagnostics = diagnostics }) - |> Builtin.jsonSerialize - - -// \ No newline at end of file diff --git a/packages/darklang/languageTools/packageManager.dark b/packages/darklang/languageTools/packageManager.dark index 05aba17d43..e48a379aeb 100644 --- a/packages/darklang/languageTools/packageManager.dark +++ b/packages/darklang/languageTools/packageManager.dark @@ -37,7 +37,7 @@ module Darklang = module Module = let getByName (qualifiedModuleName: String) - : Stdlib.Result.Result = + : Stdlib.Result.Result = let httpResponse = Stdlib.HttpClient.request "GET" @@ -51,7 +51,7 @@ module Darklang = let parsedMaybe = response.body |> Stdlib.String.fromBytesWithReplacement - |> Builtin.jsonParse + |> Builtin.jsonParse match parsedMaybe with | Ok parsed -> Stdlib.Result.Result.Ok parsed diff --git a/packages/darklang/languageTools/programTypes.dark b/packages/darklang/languageTools/programTypes.dark index a73ff698d8..81db2f7692 100644 --- a/packages/darklang/languageTools/programTypes.dark +++ b/packages/darklang/languageTools/programTypes.dark @@ -509,7 +509,238 @@ module Darklang = deprecated: Deprecation } - type Packages = - { types: List - constants: List - fns: List } \ No newline at end of file + module Packages = + type Packages = + { types: List + constants: List + fns: List } + + let filterToModule + (p: Packages) + (owner: String) + (moduleName: List) + : Packages = + Packages + { types = + p.types + |> Stdlib.List.filter (fun t -> + t.name.owner == owner && t.name.modules == moduleName) + + constants = + p.constants + |> Stdlib.List.filter (fun c -> + c.name.owner == owner && c.name.modules == moduleName) + + fns = + p.fns + |> Stdlib.List.filter (fun f -> + f.name.owner == owner && f.name.modules == moduleName) } + + + // helper functions for converting a Packages to a List, + // to represent packages in the module hierarchy + type Module = + { name: String + types: List + constants: List + fns: List + submodules: List } + + let withType (ms: List) (t: PackageType) : List = + match t.name.modules with + | firstModuleNamePart :: submoduleNames -> + let (foundModuleMaybe, otherModules) = + ms |> Stdlib.List.partition (fun m -> m.name == firstModuleNamePart) + + match (foundModuleMaybe, submoduleNames) with + | [], [] -> + let newModule = + Module + { name = firstModuleNamePart + types = + [ { t with + name = { t.name with modules = [] } } ] + fns = [] + constants = [] + submodules = [] } + + Stdlib.List.append otherModules [ newModule ] + + | [], submoduleNames -> + let typeWithoutFirstModuleNamePartOfModule = + { t with + name = { t.name with modules = submoduleNames } } + + let newModuleWithSubmodule = + Module + { name = firstModuleNamePart + types = [] + fns = [] + constants = [] + submodules = withType [] typeWithoutFirstModuleNamePartOfModule } + + Stdlib.List.append otherModules [ newModuleWithSubmodule ] + + | [ foundModule ], [] -> + let updatedModule = + { foundModule with + types = + Stdlib.List.append + foundModule.types + [ { t with + name = { t.name with modules = [] } } ] } + + Stdlib.List.append otherModules [ updatedModule ] + + | [ foundModule ], submoduleNames -> + let typeWithoutFirstModuleNamePartOfModule = + { t with + name = { t.name with modules = submoduleNames } } + + let updatedModule = + { foundModule with + submodules = + withType + foundModule.submodules + typeWithoutFirstModuleNamePartOfModule } + + Stdlib.List.append otherModules [ updatedModule ] + + + let withFn (ms: List) (f: PackageFn.PackageFn) : List = + match f.name.modules with + | firstModuleNamePart :: submoduleNames -> + let (foundModuleMaybe, otherModules) = + ms |> Stdlib.List.partition (fun m -> m.name == firstModuleNamePart) + + match (foundModuleMaybe, submoduleNames) with + | [], [] -> + let newModule = + Module + { name = firstModuleNamePart + types = [] + fns = + [ { f with + name = { f.name with modules = [] } } ] + constants = [] + submodules = [] } + + Stdlib.List.append otherModules [ newModule ] + + | [], submoduleNames -> + let fnWithoutFirstModuleNamePartOfModule = + { f with + name = { f.name with modules = submoduleNames } } + + let newModuleWithSubmodule = + Module + { name = firstModuleNamePart + types = [] + fns = [] + constants = [] + submodules = withFn [] fnWithoutFirstModuleNamePartOfModule } + + Stdlib.List.append otherModules [ newModuleWithSubmodule ] + + | [ foundModule ], [] -> + let updatedModule = + { foundModule with + fns = + Stdlib.List.append + foundModule.fns + [ { f with + name = { f.name with modules = [] } } ] } + + Stdlib.List.append otherModules [ updatedModule ] + + | [ foundModule ], submoduleNames -> + let fnWithoutFirstModuleNamePartOfModule = + { f with + name = { f.name with modules = submoduleNames } } + + let updatedModule = + { foundModule with + submodules = + withFn + foundModule.submodules + fnWithoutFirstModuleNamePartOfModule } + + Stdlib.List.append otherModules [ updatedModule ] + + let withConstant (ms: List) (c: PackageConstant) : List = + match c.name.modules with + | firstModuleNamePart :: submoduleNames -> + let (foundModuleMaybe, otherModules) = + ms |> Stdlib.List.partition (fun m -> m.name == firstModuleNamePart) + + match (foundModuleMaybe, submoduleNames) with + | [], [] -> + let newModule = + Module + { name = firstModuleNamePart + types = [] + fns = [] + constants = + [ { c with + name = { c.name with modules = [] } } ] + submodules = [] } + + Stdlib.List.append otherModules [ newModule ] + + | [], submoduleNames -> + let constantWithoutFirstModuleNamePartOfModule = + { c with + name = { c.name with modules = submoduleNames } } + + let newModuleWithSubmodule = + Module + { name = firstModuleNamePart + types = [] + fns = [] + constants = [] + submodules = + withConstant [] constantWithoutFirstModuleNamePartOfModule } + + Stdlib.List.append otherModules [ newModuleWithSubmodule ] + + | [ foundModule ], [] -> + let updatedModule = + { foundModule with + constants = + Stdlib.List.append + foundModule.constants + [ { c with + name = { c.name with modules = [] } } ] } + + Stdlib.List.append otherModules [ updatedModule ] + + | [ foundModule ], submoduleNames -> + let constantWithoutFirstModuleNamePartOfModule = + { c with + name = { c.name with modules = submoduleNames } } + + let updatedModule = + { foundModule with + submodules = + withConstant + foundModule.submodules + constantWithoutFirstModuleNamePartOfModule } + + Stdlib.List.append otherModules [ updatedModule ] + + + let toModules (p: Packages) : List = + let empty = [] + + let modulesAfterTypes = + Stdlib.List.fold p.types empty (fun modules t -> withType modules t) + + let modulesWithTypesAndFns = + Stdlib.List.fold p.fns modulesAfterTypes (fun modules f -> + withFn modules f) + + let modulesWithTypesAndFnsAndConstants = + Stdlib.List.fold p.constants modulesWithTypesAndFns (fun modules c -> + withConstant modules c) + + modulesWithTypesAndFnsAndConstants \ No newline at end of file diff --git a/packages/darklang/prettyPrinter/packages.dark b/packages/darklang/prettyPrinter/packages.dark index 5a9315f3be..d927cbb010 100644 --- a/packages/darklang/prettyPrinter/packages.dark +++ b/packages/darklang/prettyPrinter/packages.dark @@ -1,345 +1,95 @@ module Darklang = - module PrettyPrinter = - module Packages = - - type Module = - { name: String - types: List - fns: List - constants: List - submodules: List } - - let withType - (ms: List) - (t: LanguageTools.ProgramTypes.PackageType) - : List = - match t.name.modules with - | [] -> - [ Module - { name = - (t.name - |> PrettyPrinter.ProgramTypes.FQTypeName.Package.fullForReference) - ++ "has no modules" - types = [] - fns = [] - constants = [] - submodules = [] } ] - - | firstModuleNamePart :: submoduleNames -> - // TODO: check if firstModuleNamePart is already in m - let (foundModuleMaybe, otherModules) = - ms |> Stdlib.List.partition (fun m -> m.name == firstModuleNamePart) - - match (foundModuleMaybe, submoduleNames) with - | [], [] -> - let newModule = - Module - { name = firstModuleNamePart - types = - [ { t with - name = { t.name with modules = [] } } ] - fns = [] - constants = [] - submodules = [] } - - Stdlib.List.append otherModules [ newModule ] - - | [], submoduleNames -> - let typeWithoutFirstModuleNamePartOfModule = - { t with - name = { t.name with modules = submoduleNames } } - - let newModuleWithSubmodule = - Module - { name = firstModuleNamePart - types = [] - fns = [] - constants = [] - submodules = withType [] typeWithoutFirstModuleNamePartOfModule } - - Stdlib.List.append otherModules [ newModuleWithSubmodule ] - - | [ foundModule ], [] -> - let updatedModule = - { foundModule with - types = - Stdlib.List.append - foundModule.types - [ { t with - name = { t.name with modules = [] } } ] } - - Stdlib.List.append otherModules [ updatedModule ] - - | [ foundModule ], submoduleNames -> - let typeWithoutFirstModuleNamePartOfModule = - { t with - name = { t.name with modules = submoduleNames } } - - let updatedModule = - { foundModule with - submodules = - withType - foundModule.submodules - typeWithoutFirstModuleNamePartOfModule } - - Stdlib.List.append otherModules [ updatedModule ] - - - let withFn - (ms: List) - (f: LanguageTools.ProgramTypes.PackageFn.PackageFn) - : List = - match f.name.modules with + module LanguageTools = + module PrettyPrinter = + let packageModule (m: ProgramTypes.Packages.Module) : String = + let headerPart = $"module {m.name} =\n" + + let typesPart = + match m.types with + | [] -> Stdlib.Option.Option.None + | types -> + m.types + |> Stdlib.List.map (fun t -> PrettyPrinter.ProgramTypes.packageType t) + |> Stdlib.String.join "\n\n" + |> Stdlib.Option.Option.Some + + let fnsPart = + match m.fns with + | [] -> Stdlib.Option.Option.None + | fns -> + m.fns + |> Stdlib.List.map (fun f -> PrettyPrinter.ProgramTypes.packageFn f) + |> Stdlib.String.join "\n\n" + |> Stdlib.Option.Option.Some + + let constantsPart = + match m.constants with + | [] -> Stdlib.Option.Option.None + | constants -> + m.constants + |> Stdlib.List.map (fun c -> + PrettyPrinter.ProgramTypes.packageConstant c) + |> Stdlib.String.join "\n\n" + |> Stdlib.Option.Option.Some + + let submodulesPart = + match m.submodules with + | [] -> Stdlib.Option.Option.None + | submodules -> + submodules + |> Stdlib.List.map (fun m -> PrettyPrinter.packageModule m) + |> Stdlib.String.join "\n\n" + |> Stdlib.Option.Option.Some + + let parts = + [ typesPart; fnsPart; constantsPart; submodulesPart ] + |> Stdlib.List.filterMap (fun s -> s) + + match parts with | [] -> - [ Module - { name = - (f.name - |> PrettyPrinter.ProgramTypes.FQTypeName.Package.fullForReference) - ++ "has no modules" - types = [] - fns = [] - constants = [] - submodules = [] } ] - - | firstModuleNamePart :: submoduleNames -> - let (foundModuleMaybe, otherModules) = - ms |> Stdlib.List.partition (fun m -> m.name == firstModuleNamePart) - - match (foundModuleMaybe, submoduleNames) with - | [], [] -> - let newModule = - Module - { name = firstModuleNamePart - types = [] - fns = - [ { f with - name = { f.name with modules = [] } } ] - constants = [] - submodules = [] } - - Stdlib.List.append otherModules [ newModule ] - - | [], submoduleNames -> - let fnWithoutFirstModuleNamePartOfModule = - { f with - name = { f.name with modules = submoduleNames } } - - let newModuleWithSubmodule = - Module - { name = firstModuleNamePart - types = [] - fns = [] - constants = [] - submodules = withFn [] fnWithoutFirstModuleNamePartOfModule } - - Stdlib.List.append otherModules [ newModuleWithSubmodule ] - - | [ foundModule ], [] -> - let updatedModule = - { foundModule with - fns = - Stdlib.List.append - foundModule.fns - [ { f with - name = { f.name with modules = [] } } ] } - - Stdlib.List.append otherModules [ updatedModule ] - - | [ foundModule ], submoduleNames -> - let fnWithoutFirstModuleNamePartOfModule = - { f with - name = { f.name with modules = submoduleNames } } - - let updatedModule = - { foundModule with - submodules = - withFn - foundModule.submodules - fnWithoutFirstModuleNamePartOfModule } - - Stdlib.List.append otherModules [ updatedModule ] - - let withConstant - (ms: List) - (c: LanguageTools.ProgramTypes.PackageConstant) - : List = - match c.name.modules with - | [] -> - [ Module - { name = - (c.name - |> PrettyPrinter.ProgramTypes.FQTypeName.Package.fullForReference) - ++ "has no modules" - types = [] - fns = [] - constants = [] - submodules = [] } ] - - | firstModuleNamePart :: submoduleNames -> - let (foundModuleMaybe, otherModules) = - ms |> Stdlib.List.partition (fun m -> m.name == firstModuleNamePart) - - match (foundModuleMaybe, submoduleNames) with - | [], [] -> - let newModule = - Module - { name = firstModuleNamePart - types = [] - fns = [] - constants = - [ { c with - name = { c.name with modules = [] } } ] - submodules = [] } - - Stdlib.List.append otherModules [ newModule ] - - | [], submoduleNames -> - let constantWithoutFirstModuleNamePartOfModule = - { c with - name = { c.name with modules = submoduleNames } } - - let newModuleWithSubmodule = - Module - { name = firstModuleNamePart - types = [] - fns = [] - constants = [] - submodules = - withConstant [] constantWithoutFirstModuleNamePartOfModule } - - Stdlib.List.append otherModules [ newModuleWithSubmodule ] - - | [ foundModule ], [] -> - let updatedModule = - { foundModule with - constants = - Stdlib.List.append - foundModule.constants - [ { c with - name = { c.name with modules = [] } } ] } - - Stdlib.List.append otherModules [ updatedModule ] - - | [ foundModule ], submoduleNames -> - let constantWithoutFirstModuleNamePartOfModule = - { c with - name = { c.name with modules = submoduleNames } } - - let updatedModule = - { foundModule with - submodules = - withConstant - foundModule.submodules - constantWithoutFirstModuleNamePartOfModule } - - Stdlib.List.append otherModules [ updatedModule ] - - - - let toModules (p: LanguageTools.ProgramTypes.Packages) : List = - let empty = [] - - let modulesAfterTypes = - Stdlib.List.fold p.types empty (fun modules t -> withType modules t) - - let modulesWithTypesAndFns = - Stdlib.List.fold p.fns modulesAfterTypes (fun modules f -> - withFn modules f) - - let modulesWithTypesAndFnsAndConstants = - Stdlib.List.fold p.constants modulesWithTypesAndFns (fun modules c -> - withConstant modules c) - - modulesWithTypesAndFnsAndConstants - - - let packageModule (m: Packages.Module) : String = - let headerPart = $"module {m.name} =\n" - - let typesPart = - match m.types with - | [] -> Stdlib.Option.Option.None - | types -> - m.types - |> Stdlib.List.map (fun t -> PrettyPrinter.ProgramTypes.packageType t) - |> Stdlib.String.join "\n\n" - |> Stdlib.Option.Option.Some - - let fnsPart = - match m.fns with - | [] -> Stdlib.Option.Option.None - | fns -> - m.fns - |> Stdlib.List.map (fun f -> PrettyPrinter.ProgramTypes.packageFn f) - |> Stdlib.String.join "\n\n" - |> Stdlib.Option.Option.Some - - let constantsPart = - match m.constants with - | [] -> Stdlib.Option.Option.None - | constants -> - m.constants - |> Stdlib.List.map (fun c -> PrettyPrinter.ProgramTypes.packageConstant c) - |> Stdlib.String.join "\n\n" - |> Stdlib.Option.Option.Some - - let submodulesPart = - match m.submodules with - | [] -> Stdlib.Option.Option.None - | submodules -> - submodules - |> Stdlib.List.map (fun m -> PrettyPrinter.packageModule m) - |> Stdlib.String.join "\n\n" - |> Stdlib.Option.Option.Some - - let parts = - [ typesPart; fnsPart; constantsPart; submodulesPart ] - |> Stdlib.List.filterMap (fun s -> s) - - match parts with - | [] -> - // CLEANUP: actually error - "Error - module defined somehow without parts" - | parts -> - let bodyPart = (Stdlib.String.join parts "\n\n") |> PrettyPrinter.indent - - $"module {m.name} =\n{bodyPart}" - - let packages (p: LanguageTools.ProgramTypes.Packages) : String = - let withOwnerStuffRepresentedAsRootLevelModule = - LanguageTools.ProgramTypes.Packages - { types = - p.types - |> Stdlib.List.map (fun t -> - { t with - name = - { t.name with - modules = - Stdlib.List.append [ t.name.owner ] t.name.modules - owner = "(redacted)" } }) - fns = - p.fns - |> Stdlib.List.map (fun f -> - { f with - name = - { f.name with - modules = - Stdlib.List.append [ f.name.owner ] f.name.modules - owner = "(redacted)" } }) - - constants = - p.constants - |> Stdlib.List.map (fun c -> - { c with - name = - { c.name with - modules = - Stdlib.List.append [ c.name.owner ] c.name.modules - owner = "(redacted)" } }) } - - let modules = Packages.toModules withOwnerStuffRepresentedAsRootLevelModule - - // CLEANUP make ordering 'better' in some way - modules - |> Stdlib.List.map (fun m -> PrettyPrinter.packageModule m) - |> Stdlib.String.join "\n\n" \ No newline at end of file + // CLEANUP: actually error + "Error - module defined somehow without parts" + | parts -> + let bodyPart = (Stdlib.String.join parts "\n\n") |> PrettyPrinter.indent + + $"module {m.name} =\n{bodyPart}" + + let packages (p: LanguageTools.ProgramTypes.Packages.Packages) : String = + let withOwnerStuffRepresentedAsRootLevelModule = + LanguageTools.ProgramTypes.Packages.Packages + { types = + p.types + |> Stdlib.List.map (fun t -> + { t with + name = + { t.name with + modules = + Stdlib.List.append [ t.name.owner ] t.name.modules + owner = "(redacted)" } }) + fns = + p.fns + |> Stdlib.List.map (fun f -> + { f with + name = + { f.name with + modules = + Stdlib.List.append [ f.name.owner ] f.name.modules + owner = "(redacted)" } }) + + constants = + p.constants + |> Stdlib.List.map (fun c -> + { c with + name = + { c.name with + modules = + Stdlib.List.append [ c.name.owner ] c.name.modules + owner = "(redacted)" } }) } + + let modules = + ProgramTypes.Packages.toModules withOwnerStuffRepresentedAsRootLevelModule + + // CLEANUP make ordering 'better' in some way + modules + |> Stdlib.List.map (fun m -> PrettyPrinter.packageModule m) + |> Stdlib.String.join "\n\n" \ No newline at end of file diff --git a/packages/darklang/vscode/README.md b/packages/darklang/vscode/README.md new file mode 100644 index 0000000000..9e248271c1 --- /dev/null +++ b/packages/darklang/vscode/README.md @@ -0,0 +1 @@ +Interacting with the VS Code API diff --git a/packages/darklang/vscode/main.dark b/packages/darklang/vscode/main.dark new file mode 100644 index 0000000000..ce65becdd8 --- /dev/null +++ b/packages/darklang/vscode/main.dark @@ -0,0 +1,88 @@ +module Darklang = + module VSCode = + // + type Json = Stdlib.AltJson.Json + // + + /// Not sure if this is the best way to handle this... will this be OK across the wire? + module Uri = + type Uri = + { + /// Scheme is the http part of + /// http://www.example.com/some/path?query#fragment. + /// The part before the first colon. + scheme: String + + /// Authority is the www.example.com part of + /// http://www.example.com/some/path?query#fragment. + /// The part between the first double slashes and the next slash. + authority: String + + /// Path is the /some/path part of + /// http://www.example.com/some/path?query#fragment. + path: String + + /// Query is the query part of + /// http://www.example.com/some/path?query#fragment. + query: String + + /// Fragment is the fragment part of + /// http://www.example.com/some/path?query#fragment. + fragment: String + + //TODO: fsPath: String + } + + let toJson (u: Uri) : Json = + [ ("scheme", Json.String u.scheme) + ("authority", Json.String u.authority) + ("path", Json.String u.path) + ("query", Json.String u.query) + ("fragment", Json.String u.fragment) ] + |> Json.Object + + + module AccessibilityInformation = + type AccessibilityInformation = + { + /// Label to be read out by a screen reader once the item has focus. + label: String + + /// Role of the widget which defines how a screen reader interacts with it. + /// The role should be set in special cases when for example a tree-like + /// element behaves like a checkbox. If role is not specified the editor + /// will pick the appropriate role automatically. + /// More about aria roles can be found here https://w3c.github.io/aria/#widget_roles + role: Stdlib.Option.Option + } + + let toJson (i: AccessibilityInformation) : Json = + [ Some(("label", Json.String i.label)) + role |> Stdlib.Option.map (fun r -> ("role", Json.String r)) ] + |> Stdlib.Option.values + |> Json.Object + + + module Command = + type Command = + { + /// Arguments that the command handler should be invoked with. + arguments: Stdlib.Option.Option> + + /// The identifier of the actual command handler. + command: String + + /// Title of the command, like save. + title: String + + /// A tooltip for the command, when represented in the UI. + tooltip: Stdlib.Option.Option + } + + let toJson (c: Command) : Json = + [ c.arguments |> Stdlib.Option.map (fun a -> ("arguments", Json.Array a)) + Some(("command", Json.String c.command)) + Some(("title", Json.String c.title)) + c.tooltip |> Stdlib.Option.map (fun t -> ("tooltip", Json.String t)) ] + |> Stdlib.Option.values + |> Json.Object \ No newline at end of file diff --git a/packages/darklang/vscode/tree-view.dark b/packages/darklang/vscode/tree-view.dark new file mode 100644 index 0000000000..5ed58fa748 --- /dev/null +++ b/packages/darklang/vscode/tree-view.dark @@ -0,0 +1,174 @@ +module Darklang = + module VSCode = + + // https://code.visualstudio.com/api/references/vscode-api#TreeItemCollapsibleState for references + module TreeView = + module TreeItemCollapsibleState = + type TreeItemCollapsibleState = + /// Can be neither collapsed nor expanded. + /// (Implies it has no children.) + | None + + | Collapsed + + | Expanded + + let toJson (state: TreeItemCollapsibleState) : Json = + match state with + | None -> Json.Number 0.0 + | Collapsed -> Json.Number 1.0 + | Expanded -> Json.Number 2.0 + + + module TreeItemType = + type TreeItemType = + | File + | Directory + + let toJson (t: TreeItemType) : Json = + match t with + | File -> Json.String "file" + | Directory -> Json.String "directory" + + + module TreeItemCheckboxState = + type TreeItemCheckboxState = + | Unchecked + | Checked + + let toJson (state: TreeItemCheckboxState) : Json = + match state with + | Unchecked -> Json.Number 0.0 + | Checked -> Json.Number 1.0 + + module TreeItemLabel = + type TreeItemLabel = + { label: String + highlights: Stdlib.Option.Option> } + + let toJson (l: TreeItemLabel) : Json = + [ Some(("label", Json.String l.label)) + + l.highlights + |> Stdlib.Option.map (fun h -> + ("highlights", + h + |> Stdlib.List.map (fun (s, e) -> + [ s |> Stdlib.Int64.toFloat |> Json.Number + e |> Stdlib.Int64.toFloat |> Json.Number ] + |> Json.Array) + |> Json.Array)) ] + |> Stdlib.Option.values + |> Json.Object + + + module TreeItem = + module Description = + type Description = + | String of String + | Bool of Bool + + let toJson (d: Description) : Json = + match d with + | String s -> Json.String s + | Bool b -> Json.Bool b + + + module Label = + type Label = + | String of String + | TreeItemLabel of TreeItemLabel.TreeItemLabel + + let toJson (l: Label) : Json = + match l with + | String s -> Json.String s + | TreeItemLabel l -> TreeItemLabel.toJson l + + + module IconPath = + type IconPath = + // TODO: handle more of these + //| Uri of Uri + //| DarkAndLight of + // ThemeIcon of + | String of String + + let toJson (i: IconPath) : Json = + match i with + | String s -> Json.String s + + + module Tooltip = + type Tooltip = + // TODO: MarkdownString of MarkdownString + | String of String + + let toJson (t: Tooltip) : Json = + match t with + | String s -> Json.String s + + + type TreeItem = + { + id: Stdlib.Option.Option + label: Stdlib.Option.Option + collapsibleState: + Stdlib.Option.Option + + command: Stdlib.Option.Option + + /// Context value of the tree item. This can be used to contribute item specific + /// actions in the tree. For example, a tree item is given a context value as folder. + /// When contributing actions to view/item/context using menus extension point, + /// you can specify context value for key viewItem in when expression like viewItem == folder. + contextValue: Stdlib.Option.Option + + checkboxState: + Stdlib.Option.Option + accessibilityInformation: + Stdlib.Option.Option + + description: Stdlib.Option.Option + + iconPath: Stdlib.Option.Option + + resourceUri: Stdlib.Option.Option + + tooltip: Stdlib.Option.Option + } + + let toJson (i: TreeItem) : Json = + [ i.id |> Stdlib.Option.map (fun id -> ("id", Json.String id)) + + i.label |> Stdlib.Option.map (fun l -> ("label", Label.toJson l)) + + i.collapsibleState + |> Stdlib.Option.map (fun s -> + ("collapsibleState", TreeItemCollapsibleState.toJson s)) + + i.command |> Stdlib.Option.map (fun c -> ("command", Command.toJson c)) + + i.contextValue + |> Stdlib.Option.map (fun cv -> ("contextValue", Json.String cv)) + + i.checkboxState + |> Stdlib.Option.map (fun cs -> + ("checkboxState", TreeItemCheckboxState.toJson cs)) + + i.accessibilityInformation + |> Stdlib.Option.map (fun ai -> + ("accessibilityInformation", AccessibilityInformation.toJson ai)) + + i.description + |> Stdlib.Option.map (fun d -> ("description", Description.toJson d)) + + i.iconPath + |> Stdlib.Option.map (fun ip -> ("iconPath", IconPath.toJson ip)) + + i.resourceUri + |> Stdlib.Option.map (fun r -> ("resourceUri", Uri.toJson r)) + + i.tooltip |> Stdlib.Option.map (fun t -> ("tooltip", Tooltip.toJson t)) ] + + |> Stdlib.Option.values + |> Json.Object \ No newline at end of file diff --git a/tree-sitter-darklang/src/parser.c b/tree-sitter-darklang/src/parser.c index 0371fb6021..1064200d99 100644 --- a/tree-sitter-darklang/src/parser.c +++ b/tree-sitter-darklang/src/parser.c @@ -1356,176 +1356,176 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [18] = 18, [19] = 19, [20] = 20, - [21] = 21, + [21] = 16, [22] = 20, - [23] = 23, - [24] = 16, - [25] = 16, + [23] = 18, + [24] = 24, + [25] = 20, [26] = 26, - [27] = 23, - [28] = 23, - [29] = 16, - [30] = 15, + [27] = 20, + [28] = 24, + [29] = 24, + [30] = 16, [31] = 31, - [32] = 16, - [33] = 21, - [34] = 17, - [35] = 23, - [36] = 19, - [37] = 37, - [38] = 21, - [39] = 17, - [40] = 20, - [41] = 15, - [42] = 21, - [43] = 15, - [44] = 17, + [32] = 15, + [33] = 24, + [34] = 18, + [35] = 18, + [36] = 36, + [37] = 36, + [38] = 18, + [39] = 19, + [40] = 36, + [41] = 19, + [42] = 15, + [43] = 19, + [44] = 16, [45] = 19, - [46] = 19, - [47] = 17, - [48] = 21, - [49] = 15, - [50] = 23, - [51] = 20, - [52] = 20, - [53] = 23, - [54] = 21, - [55] = 19, - [56] = 19, - [57] = 17, - [58] = 15, - [59] = 20, - [60] = 16, + [46] = 15, + [47] = 15, + [48] = 15, + [49] = 49, + [50] = 36, + [51] = 36, + [52] = 16, + [53] = 24, + [54] = 20, + [55] = 16, + [56] = 24, + [57] = 20, + [58] = 18, + [59] = 36, + [60] = 19, [61] = 61, - [62] = 37, + [62] = 49, [63] = 63, [64] = 64, - [65] = 65, - [66] = 66, - [67] = 67, - [68] = 63, - [69] = 63, - [70] = 67, - [71] = 67, - [72] = 65, + [65] = 63, + [66] = 64, + [67] = 64, + [68] = 68, + [69] = 69, + [70] = 70, + [71] = 69, + [72] = 64, [73] = 63, - [74] = 63, - [75] = 75, - [76] = 65, - [77] = 65, - [78] = 67, - [79] = 67, - [80] = 64, - [81] = 64, - [82] = 63, - [83] = 65, - [84] = 64, - [85] = 64, - [86] = 65, - [87] = 64, - [88] = 67, - [89] = 89, + [74] = 74, + [75] = 63, + [76] = 69, + [77] = 77, + [78] = 69, + [79] = 70, + [80] = 63, + [81] = 70, + [82] = 64, + [83] = 69, + [84] = 70, + [85] = 70, + [86] = 64, + [87] = 70, + [88] = 63, + [89] = 69, [90] = 90, [91] = 91, [92] = 92, - [93] = 91, - [94] = 94, + [93] = 93, + [94] = 92, [95] = 90, [96] = 96, [97] = 97, [98] = 98, - [99] = 99, - [100] = 100, - [101] = 94, - [102] = 91, - [103] = 98, - [104] = 100, - [105] = 99, - [106] = 106, - [107] = 97, - [108] = 100, - [109] = 99, - [110] = 110, - [111] = 94, - [112] = 96, - [113] = 91, - [114] = 90, - [115] = 92, - [116] = 116, - [117] = 98, - [118] = 97, + [99] = 93, + [100] = 98, + [101] = 101, + [102] = 102, + [103] = 97, + [104] = 90, + [105] = 105, + [106] = 102, + [107] = 107, + [108] = 101, + [109] = 91, + [110] = 105, + [111] = 98, + [112] = 91, + [113] = 93, + [114] = 93, + [115] = 96, + [116] = 105, + [117] = 101, + [118] = 118, [119] = 96, [120] = 98, - [121] = 91, - [122] = 92, - [123] = 123, - [124] = 94, - [125] = 110, - [126] = 91, - [127] = 92, - [128] = 110, - [129] = 92, - [130] = 99, - [131] = 97, - [132] = 100, - [133] = 133, - [134] = 98, - [135] = 97, + [121] = 101, + [122] = 93, + [123] = 102, + [124] = 97, + [125] = 125, + [126] = 98, + [127] = 101, + [128] = 91, + [129] = 102, + [130] = 92, + [131] = 92, + [132] = 93, + [133] = 97, + [134] = 90, + [135] = 135, [136] = 90, - [137] = 96, - [138] = 94, - [139] = 99, - [140] = 90, - [141] = 100, + [137] = 97, + [138] = 96, + [139] = 102, + [140] = 105, + [141] = 91, [142] = 96, - [143] = 92, - [144] = 94, - [145] = 90, - [146] = 96, - [147] = 110, - [148] = 99, - [149] = 97, - [150] = 100, - [151] = 98, - [152] = 110, - [153] = 110, + [143] = 105, + [144] = 90, + [145] = 91, + [146] = 97, + [147] = 96, + [148] = 102, + [149] = 105, + [150] = 101, + [151] = 92, + [152] = 98, + [153] = 92, [154] = 154, [155] = 155, [156] = 156, [157] = 157, [158] = 158, [159] = 159, - [160] = 158, - [161] = 157, + [160] = 160, + [161] = 161, [162] = 162, [163] = 163, - [164] = 164, + [164] = 158, [165] = 165, [166] = 166, [167] = 167, [168] = 168, - [169] = 154, + [169] = 169, [170] = 170, [171] = 171, [172] = 172, [173] = 173, - [174] = 174, + [174] = 157, [175] = 175, - [176] = 176, + [176] = 158, [177] = 177, [178] = 178, [179] = 179, [180] = 180, - [181] = 157, - [182] = 156, - [183] = 183, - [184] = 157, + [181] = 181, + [182] = 182, + [183] = 158, + [184] = 158, [185] = 185, [186] = 186, [187] = 187, [188] = 188, - [189] = 189, - [190] = 157, + [189] = 155, + [190] = 190, [191] = 191, [192] = 192, [193] = 193, @@ -1534,170 +1534,170 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [196] = 196, [197] = 197, [198] = 198, - [199] = 199, - [200] = 156, + [199] = 157, + [200] = 157, [201] = 201, - [202] = 156, - [203] = 203, + [202] = 202, + [203] = 154, [204] = 204, [205] = 205, [206] = 206, - [207] = 158, + [207] = 207, [208] = 208, [209] = 209, - [210] = 158, - [211] = 211, + [210] = 154, + [211] = 154, [212] = 212, - [213] = 208, - [214] = 167, - [215] = 196, - [216] = 198, - [217] = 199, - [218] = 201, - [219] = 203, - [220] = 171, - [221] = 189, - [222] = 154, - [223] = 187, - [224] = 186, - [225] = 185, - [226] = 179, - [227] = 178, - [228] = 177, - [229] = 159, - [230] = 191, - [231] = 196, - [232] = 188, - [233] = 164, - [234] = 175, - [235] = 170, - [236] = 174, - [237] = 157, - [238] = 180, - [239] = 192, - [240] = 205, - [241] = 206, - [242] = 166, - [243] = 204, - [244] = 203, - [245] = 201, - [246] = 199, - [247] = 198, - [248] = 196, - [249] = 167, - [250] = 191, + [213] = 171, + [214] = 212, + [215] = 171, + [216] = 197, + [217] = 202, + [218] = 209, + [219] = 207, + [220] = 159, + [221] = 192, + [222] = 190, + [223] = 155, + [224] = 188, + [225] = 187, + [226] = 186, + [227] = 180, + [228] = 179, + [229] = 178, + [230] = 177, + [231] = 197, + [232] = 196, + [233] = 166, + [234] = 162, + [235] = 206, + [236] = 161, + [237] = 158, + [238] = 181, + [239] = 182, + [240] = 185, + [241] = 169, + [242] = 198, + [243] = 212, + [244] = 159, + [245] = 207, + [246] = 209, + [247] = 202, + [248] = 197, + [249] = 191, + [250] = 185, [251] = 191, - [252] = 252, - [253] = 162, - [254] = 197, - [255] = 206, - [256] = 163, - [257] = 162, - [258] = 165, - [259] = 166, - [260] = 167, + [252] = 165, + [253] = 165, + [254] = 201, + [255] = 201, + [256] = 167, + [257] = 167, + [258] = 168, + [259] = 169, + [260] = 170, [261] = 168, - [262] = 172, - [263] = 204, - [264] = 197, - [265] = 163, - [266] = 162, - [267] = 165, - [268] = 166, - [269] = 198, - [270] = 205, - [271] = 199, - [272] = 201, - [273] = 203, - [274] = 204, - [275] = 208, - [276] = 206, - [277] = 205, - [278] = 192, - [279] = 180, - [280] = 168, - [281] = 171, - [282] = 157, - [283] = 172, - [284] = 174, - [285] = 170, - [286] = 175, - [287] = 164, - [288] = 192, - [289] = 189, - [290] = 188, - [291] = 197, - [292] = 159, - [293] = 163, + [262] = 173, + [263] = 212, + [264] = 169, + [265] = 202, + [266] = 170, + [267] = 209, + [268] = 207, + [269] = 159, + [270] = 191, + [271] = 198, + [272] = 171, + [273] = 185, + [274] = 182, + [275] = 181, + [276] = 172, + [277] = 158, + [278] = 173, + [279] = 161, + [280] = 206, + [281] = 192, + [282] = 162, + [283] = 166, + [284] = 196, + [285] = 177, + [286] = 178, + [287] = 182, + [288] = 190, + [289] = 289, + [290] = 179, + [291] = 165, + [292] = 180, + [293] = 201, [294] = 294, - [295] = 172, - [296] = 177, - [297] = 157, - [298] = 168, - [299] = 178, - [300] = 300, - [301] = 179, - [302] = 171, - [303] = 189, - [304] = 154, - [305] = 187, - [306] = 186, - [307] = 185, - [308] = 179, - [309] = 178, - [310] = 177, - [311] = 159, - [312] = 185, - [313] = 186, - [314] = 187, - [315] = 208, - [316] = 294, - [317] = 188, - [318] = 164, - [319] = 175, - [320] = 170, - [321] = 174, - [322] = 165, - [323] = 180, - [324] = 157, - [325] = 156, - [326] = 158, + [295] = 167, + [296] = 186, + [297] = 172, + [298] = 173, + [299] = 187, + [300] = 158, + [301] = 172, + [302] = 192, + [303] = 190, + [304] = 155, + [305] = 188, + [306] = 187, + [307] = 186, + [308] = 180, + [309] = 179, + [310] = 178, + [311] = 177, + [312] = 188, + [313] = 313, + [314] = 198, + [315] = 294, + [316] = 168, + [317] = 196, + [318] = 166, + [319] = 162, + [320] = 206, + [321] = 161, + [322] = 170, + [323] = 181, + [324] = 158, + [325] = 154, + [326] = 157, [327] = 327, - [328] = 159, - [329] = 168, - [330] = 171, - [331] = 189, - [332] = 154, - [333] = 187, - [334] = 186, - [335] = 185, - [336] = 179, - [337] = 167, - [338] = 166, - [339] = 165, - [340] = 163, - [341] = 197, - [342] = 162, - [343] = 191, - [344] = 196, - [345] = 198, - [346] = 199, - [347] = 201, - [348] = 203, - [349] = 204, - [350] = 208, - [351] = 206, - [352] = 205, - [353] = 192, - [354] = 180, - [355] = 174, - [356] = 170, - [357] = 175, - [358] = 164, - [359] = 188, - [360] = 172, - [361] = 177, - [362] = 178, + [328] = 166, + [329] = 172, + [330] = 192, + [331] = 190, + [332] = 155, + [333] = 188, + [334] = 187, + [335] = 186, + [336] = 180, + [337] = 179, + [338] = 178, + [339] = 170, + [340] = 169, + [341] = 168, + [342] = 167, + [343] = 201, + [344] = 165, + [345] = 191, + [346] = 197, + [347] = 202, + [348] = 209, + [349] = 207, + [350] = 159, + [351] = 212, + [352] = 198, + [353] = 171, + [354] = 185, + [355] = 182, + [356] = 181, + [357] = 161, + [358] = 206, + [359] = 162, + [360] = 173, + [361] = 196, + [362] = 177, [363] = 363, [364] = 364, [365] = 365, @@ -1715,72 +1715,72 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [377] = 372, [378] = 378, [379] = 379, - [380] = 380, - [381] = 157, - [382] = 382, - [383] = 379, - [384] = 379, - [385] = 158, - [386] = 386, - [387] = 156, - [388] = 379, - [389] = 379, - [390] = 390, + [380] = 379, + [381] = 381, + [382] = 379, + [383] = 383, + [384] = 158, + [385] = 385, + [386] = 379, + [387] = 379, + [388] = 157, + [389] = 389, + [390] = 154, [391] = 379, - [392] = 180, - [393] = 159, - [394] = 172, - [395] = 168, - [396] = 167, - [397] = 166, - [398] = 165, - [399] = 163, - [400] = 197, - [401] = 162, + [392] = 181, + [393] = 177, + [394] = 173, + [395] = 172, + [396] = 170, + [397] = 169, + [398] = 168, + [399] = 167, + [400] = 201, + [401] = 165, [402] = 191, - [403] = 196, - [404] = 198, - [405] = 199, - [406] = 201, - [407] = 203, + [403] = 197, + [404] = 202, + [405] = 209, + [406] = 207, + [407] = 159, [408] = 408, - [409] = 177, + [409] = 178, [410] = 410, [411] = 408, - [412] = 204, - [413] = 408, - [414] = 410, + [412] = 408, + [413] = 410, + [414] = 212, [415] = 415, [416] = 415, [417] = 410, - [418] = 208, + [418] = 198, [419] = 419, - [420] = 206, + [420] = 171, [421] = 408, - [422] = 205, - [423] = 192, - [424] = 174, - [425] = 170, + [422] = 185, + [423] = 182, + [424] = 161, + [425] = 206, [426] = 410, [427] = 408, - [428] = 175, + [428] = 162, [429] = 415, - [430] = 164, - [431] = 189, - [432] = 154, + [430] = 166, + [431] = 190, + [432] = 155, [433] = 415, - [434] = 188, + [434] = 196, [435] = 410, - [436] = 187, + [436] = 188, [437] = 415, [438] = 410, - [439] = 171, + [439] = 192, [440] = 415, - [441] = 178, + [441] = 179, [442] = 408, - [443] = 179, - [444] = 185, - [445] = 186, + [443] = 180, + [444] = 186, + [445] = 187, [446] = 446, [447] = 447, [448] = 448, @@ -3473,66 +3473,66 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [27] = {.lex_state = 78, .external_lex_state = 2}, [28] = {.lex_state = 78, .external_lex_state = 2}, [29] = {.lex_state = 78, .external_lex_state = 2}, - [30] = {.lex_state = 78}, + [30] = {.lex_state = 78, .external_lex_state = 2}, [31] = {.lex_state = 78, .external_lex_state = 2}, - [32] = {.lex_state = 78, .external_lex_state = 2}, + [32] = {.lex_state = 78}, [33] = {.lex_state = 78, .external_lex_state = 2}, [34] = {.lex_state = 78, .external_lex_state = 2}, [35] = {.lex_state = 78, .external_lex_state = 2}, - [36] = {.lex_state = 78}, - [37] = {.lex_state = 78}, + [36] = {.lex_state = 78, .external_lex_state = 2}, + [37] = {.lex_state = 78, .external_lex_state = 2}, [38] = {.lex_state = 78, .external_lex_state = 2}, - [39] = {.lex_state = 78, .external_lex_state = 2}, + [39] = {.lex_state = 78}, [40] = {.lex_state = 78, .external_lex_state = 2}, [41] = {.lex_state = 78}, - [42] = {.lex_state = 78, .external_lex_state = 2}, + [42] = {.lex_state = 78}, [43] = {.lex_state = 78}, [44] = {.lex_state = 78, .external_lex_state = 2}, [45] = {.lex_state = 78}, [46] = {.lex_state = 78}, - [47] = {.lex_state = 78, .external_lex_state = 2}, - [48] = {.lex_state = 78, .external_lex_state = 2}, + [47] = {.lex_state = 78}, + [48] = {.lex_state = 78}, [49] = {.lex_state = 78}, [50] = {.lex_state = 78, .external_lex_state = 2}, [51] = {.lex_state = 78, .external_lex_state = 2}, [52] = {.lex_state = 78, .external_lex_state = 2}, [53] = {.lex_state = 78, .external_lex_state = 2}, [54] = {.lex_state = 78, .external_lex_state = 2}, - [55] = {.lex_state = 78}, - [56] = {.lex_state = 78}, + [55] = {.lex_state = 78, .external_lex_state = 2}, + [56] = {.lex_state = 78, .external_lex_state = 2}, [57] = {.lex_state = 78, .external_lex_state = 2}, - [58] = {.lex_state = 78}, + [58] = {.lex_state = 78, .external_lex_state = 2}, [59] = {.lex_state = 78, .external_lex_state = 2}, - [60] = {.lex_state = 78, .external_lex_state = 2}, + [60] = {.lex_state = 78}, [61] = {.lex_state = 78}, [62] = {.lex_state = 78}, [63] = {.lex_state = 78, .external_lex_state = 3}, [64] = {.lex_state = 78}, - [65] = {.lex_state = 78}, + [65] = {.lex_state = 78, .external_lex_state = 3}, [66] = {.lex_state = 78}, - [67] = {.lex_state = 78, .external_lex_state = 3}, - [68] = {.lex_state = 78, .external_lex_state = 3}, + [67] = {.lex_state = 78}, + [68] = {.lex_state = 78}, [69] = {.lex_state = 78, .external_lex_state = 3}, - [70] = {.lex_state = 78, .external_lex_state = 3}, + [70] = {.lex_state = 78}, [71] = {.lex_state = 78, .external_lex_state = 3}, [72] = {.lex_state = 78}, [73] = {.lex_state = 78, .external_lex_state = 3}, - [74] = {.lex_state = 78, .external_lex_state = 3}, - [75] = {.lex_state = 78}, - [76] = {.lex_state = 78}, + [74] = {.lex_state = 78}, + [75] = {.lex_state = 78, .external_lex_state = 3}, + [76] = {.lex_state = 78, .external_lex_state = 3}, [77] = {.lex_state = 78}, [78] = {.lex_state = 78, .external_lex_state = 3}, - [79] = {.lex_state = 78, .external_lex_state = 3}, - [80] = {.lex_state = 78}, + [79] = {.lex_state = 78}, + [80] = {.lex_state = 78, .external_lex_state = 3}, [81] = {.lex_state = 78}, - [82] = {.lex_state = 78, .external_lex_state = 3}, - [83] = {.lex_state = 78}, + [82] = {.lex_state = 78}, + [83] = {.lex_state = 78, .external_lex_state = 3}, [84] = {.lex_state = 78}, [85] = {.lex_state = 78}, [86] = {.lex_state = 78}, [87] = {.lex_state = 78}, [88] = {.lex_state = 78, .external_lex_state = 3}, - [89] = {.lex_state = 78}, + [89] = {.lex_state = 78, .external_lex_state = 3}, [90] = {.lex_state = 78}, [91] = {.lex_state = 78}, [92] = {.lex_state = 78}, @@ -3597,17 +3597,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [151] = {.lex_state = 78}, [152] = {.lex_state = 78}, [153] = {.lex_state = 78}, - [154] = {.lex_state = 78}, + [154] = {.lex_state = 81}, [155] = {.lex_state = 78}, - [156] = {.lex_state = 81}, + [156] = {.lex_state = 78}, [157] = {.lex_state = 81}, [158] = {.lex_state = 81}, [159] = {.lex_state = 80}, - [160] = {.lex_state = 79}, - [161] = {.lex_state = 79}, + [160] = {.lex_state = 80}, + [161] = {.lex_state = 80}, [162] = {.lex_state = 80}, [163] = {.lex_state = 80}, - [164] = {.lex_state = 80}, + [164] = {.lex_state = 79}, [165] = {.lex_state = 80}, [166] = {.lex_state = 80}, [167] = {.lex_state = 80}, @@ -3617,23 +3617,23 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [171] = {.lex_state = 80}, [172] = {.lex_state = 80}, [173] = {.lex_state = 80}, - [174] = {.lex_state = 80}, + [174] = {.lex_state = 79}, [175] = {.lex_state = 80}, - [176] = {.lex_state = 80}, + [176] = {.lex_state = 79}, [177] = {.lex_state = 80}, [178] = {.lex_state = 80}, [179] = {.lex_state = 80}, [180] = {.lex_state = 80}, - [181] = {.lex_state = 79}, - [182] = {.lex_state = 79}, + [181] = {.lex_state = 80}, + [182] = {.lex_state = 80}, [183] = {.lex_state = 80}, - [184] = {.lex_state = 80}, + [184] = {.lex_state = 79, .external_lex_state = 2}, [185] = {.lex_state = 80}, [186] = {.lex_state = 80}, [187] = {.lex_state = 80}, [188] = {.lex_state = 80}, [189] = {.lex_state = 80}, - [190] = {.lex_state = 79, .external_lex_state = 2}, + [190] = {.lex_state = 80}, [191] = {.lex_state = 80}, [192] = {.lex_state = 80}, [193] = {.lex_state = 80}, @@ -3642,28 +3642,28 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [196] = {.lex_state = 80}, [197] = {.lex_state = 80}, [198] = {.lex_state = 80}, - [199] = {.lex_state = 80}, + [199] = {.lex_state = 79}, [200] = {.lex_state = 79, .external_lex_state = 2}, [201] = {.lex_state = 80}, - [202] = {.lex_state = 79}, - [203] = {.lex_state = 80}, + [202] = {.lex_state = 80}, + [203] = {.lex_state = 79}, [204] = {.lex_state = 80}, [205] = {.lex_state = 80}, [206] = {.lex_state = 80}, - [207] = {.lex_state = 79}, + [207] = {.lex_state = 80}, [208] = {.lex_state = 80}, [209] = {.lex_state = 80}, [210] = {.lex_state = 79, .external_lex_state = 2}, - [211] = {.lex_state = 80}, + [211] = {.lex_state = 79}, [212] = {.lex_state = 80}, [213] = {.lex_state = 78}, - [214] = {.lex_state = 78, .external_lex_state = 2}, + [214] = {.lex_state = 78}, [215] = {.lex_state = 78, .external_lex_state = 2}, [216] = {.lex_state = 78, .external_lex_state = 2}, [217] = {.lex_state = 78, .external_lex_state = 2}, [218] = {.lex_state = 78, .external_lex_state = 2}, [219] = {.lex_state = 78, .external_lex_state = 2}, - [220] = {.lex_state = 78}, + [220] = {.lex_state = 78, .external_lex_state = 2}, [221] = {.lex_state = 78}, [222] = {.lex_state = 78}, [223] = {.lex_state = 78}, @@ -3704,14 +3704,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [258] = {.lex_state = 78}, [259] = {.lex_state = 78}, [260] = {.lex_state = 78}, - [261] = {.lex_state = 78}, + [261] = {.lex_state = 78, .external_lex_state = 2}, [262] = {.lex_state = 78}, [263] = {.lex_state = 78, .external_lex_state = 2}, [264] = {.lex_state = 78, .external_lex_state = 2}, - [265] = {.lex_state = 78, .external_lex_state = 2}, - [266] = {.lex_state = 78}, - [267] = {.lex_state = 78, .external_lex_state = 2}, - [268] = {.lex_state = 78, .external_lex_state = 2}, + [265] = {.lex_state = 78}, + [266] = {.lex_state = 78, .external_lex_state = 2}, + [267] = {.lex_state = 78}, + [268] = {.lex_state = 78}, [269] = {.lex_state = 78}, [270] = {.lex_state = 78, .external_lex_state = 2}, [271] = {.lex_state = 78}, @@ -3719,20 +3719,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [273] = {.lex_state = 78}, [274] = {.lex_state = 78}, [275] = {.lex_state = 78}, - [276] = {.lex_state = 78}, + [276] = {.lex_state = 78, .external_lex_state = 2}, [277] = {.lex_state = 78}, - [278] = {.lex_state = 78}, + [278] = {.lex_state = 78, .external_lex_state = 2}, [279] = {.lex_state = 78}, - [280] = {.lex_state = 78, .external_lex_state = 2}, + [280] = {.lex_state = 78}, [281] = {.lex_state = 78}, [282] = {.lex_state = 78}, - [283] = {.lex_state = 78, .external_lex_state = 2}, + [283] = {.lex_state = 78}, [284] = {.lex_state = 78}, [285] = {.lex_state = 78}, [286] = {.lex_state = 78}, - [287] = {.lex_state = 78}, - [288] = {.lex_state = 78, .external_lex_state = 2}, - [289] = {.lex_state = 78}, + [287] = {.lex_state = 78, .external_lex_state = 2}, + [288] = {.lex_state = 78}, + [289] = {.lex_state = 78, .external_lex_state = 2}, [290] = {.lex_state = 78}, [291] = {.lex_state = 78}, [292] = {.lex_state = 78}, @@ -3740,7 +3740,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [294] = {.lex_state = 78}, [295] = {.lex_state = 78}, [296] = {.lex_state = 78}, - [297] = {.lex_state = 78, .external_lex_state = 2}, + [297] = {.lex_state = 78}, [298] = {.lex_state = 78}, [299] = {.lex_state = 78}, [300] = {.lex_state = 78, .external_lex_state = 2}, @@ -3756,9 +3756,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [310] = {.lex_state = 78, .external_lex_state = 2}, [311] = {.lex_state = 78, .external_lex_state = 2}, [312] = {.lex_state = 78}, - [313] = {.lex_state = 78}, - [314] = {.lex_state = 78}, - [315] = {.lex_state = 78, .external_lex_state = 2}, + [313] = {.lex_state = 78, .external_lex_state = 2}, + [314] = {.lex_state = 78, .external_lex_state = 2}, + [315] = {.lex_state = 78}, [316] = {.lex_state = 78}, [317] = {.lex_state = 78, .external_lex_state = 2}, [318] = {.lex_state = 78, .external_lex_state = 2}, @@ -3824,16 +3824,16 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [378] = {.lex_state = 3}, [379] = {.lex_state = 3}, [380] = {.lex_state = 3}, - [381] = {.lex_state = 1}, + [381] = {.lex_state = 3}, [382] = {.lex_state = 3}, [383] = {.lex_state = 3}, - [384] = {.lex_state = 3}, - [385] = {.lex_state = 1}, - [386] = {.lex_state = 80}, - [387] = {.lex_state = 1}, - [388] = {.lex_state = 3}, - [389] = {.lex_state = 3}, - [390] = {.lex_state = 3}, + [384] = {.lex_state = 1}, + [385] = {.lex_state = 3}, + [386] = {.lex_state = 3}, + [387] = {.lex_state = 3}, + [388] = {.lex_state = 1}, + [389] = {.lex_state = 80}, + [390] = {.lex_state = 1}, [391] = {.lex_state = 3}, [392] = {.lex_state = 1}, [393] = {.lex_state = 1}, @@ -3855,8 +3855,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [409] = {.lex_state = 1}, [410] = {.lex_state = 1}, [411] = {.lex_state = 3}, - [412] = {.lex_state = 1}, - [413] = {.lex_state = 3}, + [412] = {.lex_state = 3}, + [413] = {.lex_state = 1}, [414] = {.lex_state = 1}, [415] = {.lex_state = 3}, [416] = {.lex_state = 3}, @@ -4114,30 +4114,30 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_source_file] = STATE(553), [sym_fn_decl] = STATE(2), [sym_type_decl] = STATE(2), - [sym_expression] = STATE(316), - [sym_paren_expression] = STATE(289), - [sym_bool_literal] = STATE(289), - [sym_function_call] = STATE(289), - [sym_let_expression] = STATE(289), - [sym_string_literal] = STATE(289), - [sym_char_literal] = STATE(289), - [sym_infix_operation] = STATE(289), - [sym_int8_literal] = STATE(289), - [sym_uint8_literal] = STATE(289), - [sym_int16_literal] = STATE(289), - [sym_uint16_literal] = STATE(289), - [sym_int32_literal] = STATE(289), - [sym_uint32_literal] = STATE(289), - [sym_int64_literal] = STATE(289), - [sym_uint64_literal] = STATE(289), - [sym_int128_literal] = STATE(289), - [sym_uint128_literal] = STATE(289), + [sym_expression] = STATE(315), + [sym_paren_expression] = STATE(288), + [sym_bool_literal] = STATE(288), + [sym_function_call] = STATE(288), + [sym_let_expression] = STATE(288), + [sym_string_literal] = STATE(288), + [sym_char_literal] = STATE(288), + [sym_infix_operation] = STATE(288), + [sym_int8_literal] = STATE(288), + [sym_uint8_literal] = STATE(288), + [sym_int16_literal] = STATE(288), + [sym_uint16_literal] = STATE(288), + [sym_int32_literal] = STATE(288), + [sym_uint32_literal] = STATE(288), + [sym_int64_literal] = STATE(288), + [sym_uint64_literal] = STATE(288), + [sym_int128_literal] = STATE(288), + [sym_uint128_literal] = STATE(288), [sym_digits] = STATE(461), - [sym_list_literal] = STATE(289), - [sym_dict_literal] = STATE(289), - [sym_tuple_literal] = STATE(289), - [sym_if_expression] = STATE(289), - [sym_variable_identifier] = STATE(289), + [sym_list_literal] = STATE(288), + [sym_dict_literal] = STATE(288), + [sym_tuple_literal] = STATE(288), + [sym_if_expression] = STATE(288), + [sym_variable_identifier] = STATE(288), [aux_sym_source_file_repeat1] = STATE(2), [aux_sym_source_file_repeat2] = STATE(26), [ts_builtin_sym_end] = ACTIONS(3), @@ -4187,7 +4187,7 @@ static const uint16_t ts_small_parse_table[] = { ts_builtin_sym_end, STATE(61), 1, aux_sym_source_file_repeat2, - STATE(316), 1, + STATE(315), 1, sym_expression, STATE(461), 1, sym_digits, @@ -4201,7 +4201,7 @@ static const uint16_t ts_small_parse_table[] = { sym_fn_decl, sym_type_decl, aux_sym_source_file_repeat1, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -4249,7 +4249,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_type_identifier_token1, STATE(85), 1, sym_qualified_fn_name, - STATE(389), 1, + STATE(380), 1, sym_expression, STATE(446), 1, sym_fn_identifier, @@ -4313,7 +4313,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_type_identifier_token1, STATE(84), 1, sym_qualified_fn_name, - STATE(379), 1, + STATE(382), 1, sym_expression, STATE(446), 1, sym_fn_identifier, @@ -4377,7 +4377,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_type_identifier_token1, STATE(81), 1, sym_qualified_fn_name, - STATE(384), 1, + STATE(391), 1, sym_expression, STATE(446), 1, sym_fn_identifier, @@ -4439,9 +4439,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(55), 1, aux_sym_type_identifier_token1, - STATE(64), 1, + STATE(70), 1, sym_qualified_fn_name, - STATE(388), 1, + STATE(387), 1, sym_expression, STATE(446), 1, sym_fn_identifier, @@ -4503,9 +4503,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(55), 1, aux_sym_type_identifier_token1, - STATE(80), 1, + STATE(79), 1, sym_qualified_fn_name, - STATE(391), 1, + STATE(379), 1, sym_expression, STATE(446), 1, sym_fn_identifier, @@ -4569,7 +4569,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_type_identifier_token1, STATE(87), 1, sym_qualified_fn_name, - STATE(383), 1, + STATE(386), 1, sym_expression, STATE(446), 1, sym_fn_identifier, @@ -4991,7 +4991,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(37), 1, + STATE(49), 1, aux_sym_source_file_repeat2, STATE(294), 1, sym_expression, @@ -5003,7 +5003,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -5049,9 +5049,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(119), 1, sym_dedent, - STATE(53), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(31), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5085,38 +5085,38 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [1205] = 17, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(121), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(124), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(130), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(133), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(136), 1, + sym_negative_digits, + ACTIONS(139), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(145), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(148), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(151), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(154), 1, aux_sym_variable_identifier_token1, - ACTIONS(121), 1, + ACTIONS(157), 1, sym_dedent, - STATE(18), 1, + STATE(17), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(127), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(142), 2, sym_float_literal, sym_unit, STATE(303), 22, @@ -5143,38 +5143,38 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [1280] = 17, - ACTIONS(123), 1, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(126), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(132), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(135), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(138), 1, - sym_negative_digits, - ACTIONS(141), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(147), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(150), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(153), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(156), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, ACTIONS(159), 1, sym_dedent, - STATE(18), 1, + STATE(50), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, - ACTIONS(129), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(144), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, STATE(303), 22, @@ -5281,9 +5281,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(163), 1, sym_dedent, - STATE(31), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(17), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5339,9 +5339,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(165), 1, sym_dedent, - STATE(17), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(31), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5397,9 +5397,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(167), 1, sym_dedent, - STATE(31), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(17), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5455,9 +5455,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(169), 1, sym_dedent, - STATE(18), 1, + STATE(40), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5513,9 +5513,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(171), 1, sym_dedent, - STATE(28), 1, + STATE(25), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5571,9 +5571,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(173), 1, sym_dedent, - STATE(27), 1, + STATE(17), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5631,7 +5631,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, STATE(62), 1, aux_sym_source_file_repeat2, - STATE(316), 1, + STATE(315), 1, sym_expression, STATE(461), 1, sym_digits, @@ -5641,7 +5641,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -5687,9 +5687,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(177), 1, sym_dedent, - STATE(18), 1, + STATE(17), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5745,9 +5745,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(179), 1, sym_dedent, - STATE(18), 1, + STATE(27), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5803,9 +5803,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(181), 1, sym_dedent, - STATE(23), 1, + STATE(22), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5841,39 +5841,39 @@ static const uint16_t ts_small_parse_table[] = { [2180] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, ACTIONS(183), 1, - anon_sym_RPAREN, - STATE(37), 1, - aux_sym_source_file_repeat2, - STATE(294), 1, + sym_dedent, + STATE(31), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, - STATE(466), 1, + STATE(471), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -5921,7 +5921,7 @@ static const uint16_t ts_small_parse_table[] = { sym_dedent, STATE(31), 1, aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(289), 1, sym_expression, STATE(471), 1, sym_digits, @@ -5957,39 +5957,39 @@ static const uint16_t ts_small_parse_table[] = { [2330] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(93), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, ACTIONS(223), 1, - sym_dedent, - STATE(35), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + anon_sym_RPAREN, + STATE(49), 1, + aux_sym_source_file_repeat2, + STATE(294), 1, sym_expression, - STATE(471), 1, + STATE(466), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6035,9 +6035,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(225), 1, sym_dedent, - STATE(34), 1, + STATE(20), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -6093,9 +6093,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(227), 1, sym_dedent, - STATE(18), 1, + STATE(36), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -6151,9 +6151,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(229), 1, sym_dedent, - STATE(18), 1, + STATE(37), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -6189,39 +6189,39 @@ static const uint16_t ts_small_parse_table[] = { [2630] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(115), 1, + anon_sym_if, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, ACTIONS(231), 1, - anon_sym_RBRACK, - STATE(378), 1, + sym_dedent, + STATE(17), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, - STATE(464), 1, + STATE(471), 1, sym_digits, - STATE(527), 1, - sym_list_content, - ACTIONS(37), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6245,41 +6245,41 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [2705] = 17, - ACTIONS(233), 1, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(236), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(239), 1, - anon_sym_RPAREN, - ACTIONS(244), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(247), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(250), 1, - sym_negative_digits, - ACTIONS(253), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(259), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(262), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(265), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(268), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(37), 1, - aux_sym_source_file_repeat2, - STATE(294), 1, + ACTIONS(233), 1, + sym_dedent, + STATE(17), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, - STATE(466), 1, + STATE(471), 1, sym_digits, - ACTIONS(241), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(256), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6323,11 +6323,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(271), 1, + ACTIONS(235), 1, sym_dedent, - STATE(39), 1, + STATE(51), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -6363,39 +6363,39 @@ static const uint16_t ts_small_parse_table[] = { [2855] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(113), 1, - anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(273), 1, - sym_dedent, - STATE(18), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + ACTIONS(237), 1, + anon_sym_RBRACK, + STATE(378), 1, sym_expression, - STATE(471), 1, + STATE(464), 1, sym_digits, - ACTIONS(101), 2, + STATE(527), 1, + sym_list_content, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6439,11 +6439,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(275), 1, + ACTIONS(239), 1, sym_dedent, - STATE(31), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(17), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -6479,39 +6479,39 @@ static const uint16_t ts_small_parse_table[] = { [3005] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(91), 1, - anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(277), 1, - anon_sym_RPAREN, - STATE(37), 1, - aux_sym_source_file_repeat2, - STATE(294), 1, + ACTIONS(241), 1, + anon_sym_RBRACK, + STATE(378), 1, sym_expression, - STATE(466), 1, + STATE(464), 1, sym_digits, - ACTIONS(79), 2, + STATE(523), 1, + sym_list_content, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6537,39 +6537,39 @@ static const uint16_t ts_small_parse_table[] = { [3080] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(93), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - ACTIONS(279), 1, - sym_dedent, - STATE(44), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + ACTIONS(243), 1, + anon_sym_RPAREN, + STATE(49), 1, + aux_sym_source_file_repeat2, + STATE(294), 1, sym_expression, - STATE(471), 1, + STATE(466), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6595,39 +6595,39 @@ static const uint16_t ts_small_parse_table[] = { [3155] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(91), 1, - anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(281), 1, - anon_sym_RPAREN, - STATE(37), 1, - aux_sym_source_file_repeat2, - STATE(294), 1, + ACTIONS(245), 1, + anon_sym_RBRACK, + STATE(378), 1, sym_expression, - STATE(466), 1, + STATE(464), 1, sym_digits, - ACTIONS(79), 2, + STATE(538), 1, + sym_list_content, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6671,11 +6671,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(283), 1, + ACTIONS(247), 1, sym_dedent, - STATE(18), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(31), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, STATE(471), 1, sym_digits, @@ -6729,13 +6729,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(285), 1, + ACTIONS(249), 1, anon_sym_RBRACK, STATE(378), 1, sym_expression, STATE(464), 1, sym_digits, - STATE(542), 1, + STATE(558), 1, sym_list_content, ACTIONS(37), 2, aux_sym_bool_literal_token1, @@ -6769,39 +6769,39 @@ static const uint16_t ts_small_parse_table[] = { [3380] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(93), 1, + anon_sym_if, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - ACTIONS(287), 1, - anon_sym_RBRACK, - STATE(378), 1, + ACTIONS(251), 1, + anon_sym_RPAREN, + STATE(49), 1, + aux_sym_source_file_repeat2, + STATE(294), 1, sym_expression, - STATE(464), 1, + STATE(466), 1, sym_digits, - STATE(523), 1, - sym_list_content, - ACTIONS(37), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6827,39 +6827,39 @@ static const uint16_t ts_small_parse_table[] = { [3455] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(93), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - ACTIONS(289), 1, - sym_dedent, - STATE(18), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + ACTIONS(253), 1, + anon_sym_RPAREN, + STATE(49), 1, + aux_sym_source_file_repeat2, + STATE(294), 1, sym_expression, - STATE(471), 1, + STATE(466), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6885,39 +6885,39 @@ static const uint16_t ts_small_parse_table[] = { [3530] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(93), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - ACTIONS(291), 1, - sym_dedent, - STATE(47), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + ACTIONS(255), 1, + anon_sym_RPAREN, + STATE(49), 1, + aux_sym_source_file_repeat2, + STATE(294), 1, sym_expression, - STATE(471), 1, + STATE(466), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -6941,41 +6941,41 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [3605] = 17, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(257), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(260), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(263), 1, + anon_sym_RPAREN, + ACTIONS(268), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(271), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(274), 1, + sym_negative_digits, + ACTIONS(277), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(283), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(286), 1, anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(289), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(292), 1, aux_sym_variable_identifier_token1, - ACTIONS(293), 1, - anon_sym_RPAREN, - STATE(37), 1, + STATE(49), 1, aux_sym_source_file_repeat2, STATE(294), 1, sym_expression, STATE(466), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(265), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(280), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7021,9 +7021,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(295), 1, sym_dedent, - STATE(18), 1, + STATE(17), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7079,9 +7079,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(297), 1, sym_dedent, - STATE(31), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(17), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7139,7 +7139,7 @@ static const uint16_t ts_small_parse_table[] = { sym_dedent, STATE(31), 1, aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(289), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7195,9 +7195,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(301), 1, sym_dedent, - STATE(18), 1, + STATE(54), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7253,9 +7253,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(303), 1, sym_dedent, - STATE(57), 1, + STATE(17), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7291,39 +7291,39 @@ static const uint16_t ts_small_parse_table[] = { [4055] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(115), 1, + anon_sym_if, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, ACTIONS(305), 1, - anon_sym_RBRACK, - STATE(378), 1, + sym_dedent, + STATE(31), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, - STATE(464), 1, + STATE(471), 1, sym_digits, - STATE(538), 1, - sym_list_content, - ACTIONS(37), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7349,39 +7349,39 @@ static const uint16_t ts_small_parse_table[] = { [4130] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(115), 1, + anon_sym_if, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, ACTIONS(307), 1, - anon_sym_RBRACK, - STATE(378), 1, + sym_dedent, + STATE(57), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, - STATE(464), 1, + STATE(471), 1, sym_digits, - STATE(558), 1, - sym_list_content, - ACTIONS(37), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7427,9 +7427,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(309), 1, sym_dedent, - STATE(18), 1, + STATE(17), 1, aux_sym_if_expression_repeat2, - STATE(300), 1, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7465,39 +7465,39 @@ static const uint16_t ts_small_parse_table[] = { [4280] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, ACTIONS(311), 1, - anon_sym_RPAREN, - STATE(37), 1, - aux_sym_source_file_repeat2, - STATE(294), 1, + sym_dedent, + STATE(59), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, - STATE(466), 1, + STATE(471), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7543,9 +7543,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(313), 1, sym_dedent, - STATE(31), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(17), 1, + aux_sym_if_expression_repeat2, + STATE(313), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7581,39 +7581,39 @@ static const uint16_t ts_small_parse_table[] = { [4430] = 17, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(113), 1, - anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, ACTIONS(315), 1, - sym_dedent, - STATE(50), 1, - aux_sym_if_expression_repeat2, - STATE(300), 1, + anon_sym_RBRACK, + STATE(378), 1, sym_expression, - STATE(471), 1, + STATE(464), 1, sym_digits, - ACTIONS(101), 2, + STATE(542), 1, + sym_list_content, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7661,7 +7661,7 @@ static const uint16_t ts_small_parse_table[] = { ts_builtin_sym_end, STATE(62), 1, aux_sym_source_file_repeat2, - STATE(316), 1, + STATE(315), 1, sym_expression, STATE(461), 1, sym_digits, @@ -7671,7 +7671,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7695,9 +7695,9 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [4580] = 17, - ACTIONS(239), 1, + ACTIONS(263), 1, ts_builtin_sym_end, - ACTIONS(250), 1, + ACTIONS(274), 1, sym_negative_digits, ACTIONS(319), 1, anon_sym_let, @@ -7719,7 +7719,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, STATE(62), 1, aux_sym_source_file_repeat2, - STATE(316), 1, + STATE(315), 1, sym_expression, STATE(461), 1, sym_digits, @@ -7729,7 +7729,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(337), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7755,37 +7755,37 @@ static const uint16_t ts_small_parse_table[] = { [4655] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(374), 1, + ACTIONS(352), 1, sym_indent, - STATE(399), 1, + STATE(257), 1, sym_expression, - STATE(458), 1, + STATE(471), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -7809,62 +7809,6 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [4727] = 16, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(73), 1, - anon_sym_let, - ACTIONS(75), 1, - anon_sym_LPAREN, - ACTIONS(81), 1, - anon_sym_DQUOTE, - ACTIONS(83), 1, - anon_sym_SQUOTE, - ACTIONS(85), 1, - sym_positive_digits, - ACTIONS(89), 1, - anon_sym_LBRACK, - ACTIONS(91), 1, - anon_sym_Dict, - ACTIONS(93), 1, - anon_sym_if, - ACTIONS(95), 1, - aux_sym_variable_identifier_token1, - STATE(30), 1, - aux_sym_source_file_repeat2, - STATE(294), 1, - sym_expression, - STATE(466), 1, - sym_digits, - ACTIONS(79), 2, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - ACTIONS(87), 2, - sym_float_literal, - sym_unit, - STATE(221), 22, - sym_paren_expression, - sym_bool_literal, - sym_function_call, - sym_let_expression, - sym_string_literal, - sym_char_literal, - sym_infix_operation, - sym_int8_literal, - sym_uint8_literal, - sym_int16_literal, - sym_uint16_literal, - sym_int32_literal, - sym_uint32_literal, - sym_int64_literal, - sym_uint64_literal, - sym_int128_literal, - sym_uint128_literal, - sym_list_literal, - sym_dict_literal, - sym_tuple_literal, - sym_if_expression, - sym_variable_identifier, - [4799] = 16, ACTIONS(17), 1, sym_negative_digits, ACTIONS(97), 1, @@ -7885,9 +7829,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(40), 1, + STATE(30), 1, aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(289), 1, sym_expression, STATE(471), 1, sym_digits, @@ -7920,7 +7864,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [4871] = 16, + [4799] = 16, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -7941,9 +7885,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(376), 1, - anon_sym_RBRACK, - STATE(390), 1, + ACTIONS(354), 1, + sym_indent, + STATE(342), 1, sym_expression, STATE(464), 1, sym_digits, @@ -7976,40 +7920,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [4943] = 16, + [4871] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(115), 1, + anon_sym_if, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(378), 1, - sym_indent, - STATE(338), 1, + STATE(44), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, - STATE(464), 1, + STATE(471), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8032,40 +7976,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5015] = 16, + [4943] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(380), 1, - sym_indent, - STATE(256), 1, + STATE(16), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, - STATE(466), 1, + STATE(471), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8088,7 +8032,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5087] = 16, + [5015] = 16, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -8109,12 +8053,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(382), 1, - sym_indent, - STATE(340), 1, + STATE(419), 1, sym_expression, STATE(464), 1, sym_digits, + STATE(506), 1, + sym_dict_pair, ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, @@ -8144,40 +8088,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5159] = 16, + [5087] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(384), 1, + ACTIONS(356), 1, sym_indent, - STATE(397), 1, + STATE(264), 1, sym_expression, - STATE(458), 1, + STATE(471), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8200,7 +8144,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5231] = 16, + [5159] = 16, ACTIONS(17), 1, sym_negative_digits, ACTIONS(73), 1, @@ -8221,9 +8165,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - ACTIONS(386), 1, - sym_indent, - STATE(259), 1, + STATE(32), 1, + aux_sym_source_file_repeat2, + STATE(294), 1, sym_expression, STATE(466), 1, sym_digits, @@ -8233,7 +8177,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8256,40 +8200,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5303] = 16, + [5231] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(113), 1, - anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(59), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + ACTIONS(358), 1, + sym_indent, + STATE(340), 1, sym_expression, - STATE(471), 1, + STATE(464), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8312,40 +8256,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5375] = 16, + [5303] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(404), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(410), 1, - sym_indent, - STATE(163), 1, + STATE(55), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, - STATE(470), 1, + STATE(471), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8368,40 +8312,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5447] = 16, + [5375] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(378), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - ACTIONS(412), 1, + ACTIONS(382), 1, sym_indent, - STATE(265), 1, + STATE(167), 1, sym_expression, - STATE(471), 1, + STATE(470), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8424,7 +8368,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5519] = 16, + [5447] = 16, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -8445,9 +8389,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(414), 1, + ACTIONS(384), 1, anon_sym_RBRACK, - STATE(390), 1, + STATE(385), 1, sym_expression, STATE(464), 1, sym_digits, @@ -8480,40 +8424,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5591] = 16, + [5519] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(52), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + ACTIONS(408), 1, + sym_indent, + STATE(399), 1, sym_expression, - STATE(471), 1, + STATE(458), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8536,40 +8480,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5663] = 16, + [5591] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(93), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(20), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + ACTIONS(410), 1, + sym_indent, + STATE(259), 1, sym_expression, - STATE(471), 1, + STATE(466), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8592,40 +8536,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5735] = 16, + [5663] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(404), 1, - anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(416), 1, - sym_indent, - STATE(166), 1, + ACTIONS(412), 1, + anon_sym_RBRACK, + STATE(385), 1, sym_expression, - STATE(470), 1, + STATE(464), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8648,40 +8592,40 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5807] = 16, + [5735] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - ACTIONS(418), 1, + ACTIONS(414), 1, sym_indent, - STATE(268), 1, + STATE(397), 1, sym_expression, - STATE(471), 1, + STATE(458), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8704,7 +8648,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [5879] = 16, + [5807] = 16, ACTIONS(17), 1, sym_negative_digits, ACTIONS(73), 1, @@ -8737,7 +8681,63 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, + sym_paren_expression, + sym_bool_literal, + sym_function_call, + sym_let_expression, + sym_string_literal, + sym_char_literal, + sym_infix_operation, + sym_int8_literal, + sym_uint8_literal, + sym_int16_literal, + sym_uint16_literal, + sym_int32_literal, + sym_uint32_literal, + sym_int64_literal, + sym_uint64_literal, + sym_int128_literal, + sym_uint128_literal, + sym_list_literal, + sym_dict_literal, + sym_tuple_literal, + sym_if_expression, + sym_variable_identifier, + [5879] = 16, + ACTIONS(7), 1, + anon_sym_LPAREN, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(15), 1, + anon_sym_SQUOTE, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(19), 1, + sym_positive_digits, + ACTIONS(23), 1, + anon_sym_LBRACK, + ACTIONS(25), 1, + anon_sym_Dict, + ACTIONS(27), 1, + anon_sym_if, + ACTIONS(29), 1, + aux_sym_variable_identifier_token1, + ACTIONS(175), 1, + anon_sym_let, + ACTIONS(416), 1, + sym_indent, + STATE(295), 1, + sym_expression, + STATE(461), 1, + sym_digits, + ACTIONS(11), 2, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + ACTIONS(21), 2, + sym_float_literal, + sym_unit, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8781,7 +8781,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(58), 1, + STATE(47), 1, aux_sym_source_file_repeat2, STATE(294), 1, sym_expression, @@ -8793,7 +8793,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8817,39 +8817,39 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [6023] = 16, - ACTIONS(7), 1, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(97), 1, + anon_sym_let, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(13), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(15), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(19), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(23), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(25), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(27), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(29), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - ACTIONS(175), 1, - anon_sym_let, - ACTIONS(420), 1, - sym_indent, - STATE(293), 1, + STATE(21), 1, + aux_sym_if_expression_repeat1, + STATE(289), 1, sym_expression, - STATE(461), 1, + STATE(471), 1, sym_digits, - ACTIONS(11), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(21), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8875,37 +8875,37 @@ static const uint16_t ts_small_parse_table[] = { [6095] = 16, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(378), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(22), 1, - aux_sym_if_expression_repeat1, - STATE(252), 1, + ACTIONS(418), 1, + sym_indent, + STATE(169), 1, sym_expression, - STATE(471), 1, + STATE(470), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -8949,7 +8949,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(43), 1, + STATE(46), 1, aux_sym_source_file_repeat2, STATE(294), 1, sym_expression, @@ -8961,7 +8961,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9005,7 +9005,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(49), 1, + STATE(48), 1, aux_sym_source_file_repeat2, STATE(294), 1, sym_expression, @@ -9017,7 +9017,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9061,9 +9061,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(51), 1, + STATE(52), 1, aux_sym_if_expression_repeat1, - STATE(252), 1, + STATE(289), 1, sym_expression, STATE(471), 1, sym_digits, @@ -9117,7 +9117,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(41), 1, + STATE(42), 1, aux_sym_source_file_repeat2, STATE(294), 1, sym_expression, @@ -9129,7 +9129,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9153,39 +9153,39 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [6455] = 16, - ACTIONS(7), 1, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(73), 1, + anon_sym_let, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(13), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(15), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(19), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(23), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(25), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(27), 1, + ACTIONS(93), 1, anon_sym_if, - ACTIONS(29), 1, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - ACTIONS(175), 1, - anon_sym_let, - ACTIONS(422), 1, + ACTIONS(420), 1, sym_indent, - STATE(242), 1, + STATE(256), 1, sym_expression, - STATE(461), 1, + STATE(466), 1, sym_digits, - ACTIONS(11), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(21), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9209,39 +9209,39 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [6527] = 16, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(33), 1, - anon_sym_let, - ACTIONS(35), 1, + ACTIONS(7), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(13), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(15), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(19), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(25), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(27), 1, + anon_sym_if, + ACTIONS(29), 1, aux_sym_variable_identifier_token1, - STATE(419), 1, + ACTIONS(175), 1, + anon_sym_let, + ACTIONS(422), 1, + sym_indent, + STATE(241), 1, sym_expression, - STATE(464), 1, + STATE(461), 1, sym_digits, - STATE(506), 1, - sym_dict_pair, - ACTIONS(37), 2, + ACTIONS(11), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9285,7 +9285,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(175), 1, anon_sym_let, - STATE(274), 1, + STATE(271), 1, sym_expression, STATE(461), 1, sym_digits, @@ -9295,7 +9295,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9339,7 +9339,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(342), 1, + STATE(411), 1, sym_expression, STATE(464), 1, sym_digits, @@ -9375,35 +9375,35 @@ static const uint16_t ts_small_parse_table[] = { [6737] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(368), 1, - anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(418), 1, + STATE(437), 1, sym_expression, - STATE(458), 1, + STATE(464), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9429,35 +9429,35 @@ static const uint16_t ts_small_parse_table[] = { [6806] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(404), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(378), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(162), 1, + STATE(165), 1, sym_expression, STATE(470), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9501,7 +9501,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(411), 1, + STATE(415), 1, sym_expression, STATE(464), 1, sym_digits, @@ -9537,32 +9537,32 @@ static const uint16_t ts_small_parse_table[] = { [6944] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(412), 1, + STATE(418), 1, sym_expression, STATE(458), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, STATE(431), 22, @@ -9591,32 +9591,32 @@ static const uint16_t ts_small_parse_table[] = { [7013] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(407), 1, + STATE(417), 1, sym_expression, STATE(458), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, STATE(431), 22, @@ -9645,32 +9645,32 @@ static const uint16_t ts_small_parse_table[] = { [7082] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(406), 1, + STATE(414), 1, sym_expression, STATE(458), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, STATE(431), 22, @@ -9699,35 +9699,35 @@ static const uint16_t ts_small_parse_table[] = { [7151] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(378), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(405), 1, + STATE(209), 1, sym_expression, - STATE(458), 1, + STATE(470), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9753,35 +9753,35 @@ static const uint16_t ts_small_parse_table[] = { [7220] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(93), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(417), 1, + STATE(253), 1, sym_expression, - STATE(458), 1, + STATE(466), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9807,35 +9807,35 @@ static const uint16_t ts_small_parse_table[] = { [7289] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(93), 1, + anon_sym_if, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(377), 1, + STATE(246), 1, sym_expression, - STATE(464), 1, + STATE(466), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9861,35 +9861,35 @@ static const uint16_t ts_small_parse_table[] = { [7358] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(73), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(75), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(81), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(83), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(85), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(89), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(91), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(93), 1, + anon_sym_if, + ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(421), 1, + STATE(245), 1, sym_expression, - STATE(464), 1, + STATE(466), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(79), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9933,7 +9933,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(253), 1, + STATE(244), 1, sym_expression, STATE(466), 1, sym_digits, @@ -9943,7 +9943,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -9987,7 +9987,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(95), 1, aux_sym_variable_identifier_token1, - STATE(246), 1, + STATE(243), 1, sym_expression, STATE(466), 1, sym_digits, @@ -9997,7 +9997,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(87), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(222), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10021,6 +10021,60 @@ static const uint16_t ts_small_parse_table[] = { sym_if_expression, sym_variable_identifier, [7565] = 15, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(73), 1, + anon_sym_let, + ACTIONS(75), 1, + anon_sym_LPAREN, + ACTIONS(81), 1, + anon_sym_DQUOTE, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(85), 1, + sym_positive_digits, + ACTIONS(89), 1, + anon_sym_LBRACK, + ACTIONS(91), 1, + anon_sym_Dict, + ACTIONS(93), 1, + anon_sym_if, + ACTIONS(95), 1, + aux_sym_variable_identifier_token1, + STATE(242), 1, + sym_expression, + STATE(466), 1, + sym_digits, + ACTIONS(79), 2, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + ACTIONS(87), 2, + sym_float_literal, + sym_unit, + STATE(222), 22, + sym_paren_expression, + sym_bool_literal, + sym_function_call, + sym_let_expression, + sym_string_literal, + sym_char_literal, + sym_infix_operation, + sym_int8_literal, + sym_uint8_literal, + sym_int16_literal, + sym_uint16_literal, + sym_int32_literal, + sym_uint32_literal, + sym_int64_literal, + sym_uint64_literal, + sym_int128_literal, + sym_uint128_literal, + sym_list_literal, + sym_dict_literal, + sym_tuple_literal, + sym_if_expression, + sym_variable_identifier, + [7634] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -10041,7 +10095,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(374), 1, + STATE(372), 1, sym_expression, STATE(464), 1, sym_digits, @@ -10074,35 +10128,35 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [7634] = 15, + [7703] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(438), 1, + STATE(407), 1, sym_expression, STATE(458), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, STATE(431), 22, @@ -10128,7 +10182,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [7703] = 15, + [7772] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -10149,7 +10203,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(382), 1, + STATE(383), 1, sym_expression, STATE(464), 1, sym_digits, @@ -10182,38 +10236,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [7772] = 15, + [7841] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(245), 1, + STATE(406), 1, sym_expression, - STATE(466), 1, + STATE(458), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10236,7 +10290,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [7841] = 15, + [7910] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -10257,7 +10311,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(376), 1, + STATE(421), 1, sym_expression, STATE(464), 1, sym_digits, @@ -10290,38 +10344,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [7910] = 15, + [7979] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(368), 1, - anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(414), 1, + STATE(376), 1, sym_expression, - STATE(458), 1, + STATE(464), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10344,38 +10398,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [7979] = 15, + [8048] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(404), 1, + anon_sym_if, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(433), 1, + STATE(405), 1, sym_expression, - STATE(464), 1, + STATE(458), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10398,7 +10452,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8048] = 15, + [8117] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -10452,38 +10506,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8117] = 15, + [8186] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(244), 1, + STATE(252), 1, sym_expression, - STATE(466), 1, + STATE(471), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10506,7 +10560,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8186] = 15, + [8255] = 15, ACTIONS(7), 1, anon_sym_LPAREN, ACTIONS(13), 1, @@ -10527,7 +10581,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(175), 1, anon_sym_let, - STATE(266), 1, + STATE(291), 1, sym_expression, STATE(461), 1, sym_digits, @@ -10537,7 +10591,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10560,38 +10614,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8255] = 15, + [8324] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(243), 1, + STATE(438), 1, sym_expression, - STATE(466), 1, + STATE(458), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10614,38 +10668,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8324] = 15, + [8393] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(73), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(75), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(81), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(83), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(85), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(89), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(91), 1, - anon_sym_Dict, - ACTIONS(93), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(95), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(213), 1, + STATE(373), 1, sym_expression, - STATE(466), 1, + STATE(464), 1, sym_digits, - ACTIONS(79), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(87), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(221), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10668,38 +10722,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8393] = 15, + [8462] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(378), 1, + anon_sym_if, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(380), 1, + STATE(207), 1, sym_expression, - STATE(464), 1, + STATE(470), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10722,38 +10776,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8462] = 15, - ACTIONS(7), 1, + [8531] = 15, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(33), 1, + anon_sym_let, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(13), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(15), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(19), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(23), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(25), 1, - anon_sym_Dict, - ACTIONS(27), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(29), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - ACTIONS(175), 1, - anon_sym_let, - STATE(271), 1, + STATE(381), 1, sym_expression, - STATE(461), 1, + STATE(464), 1, sym_digits, - ACTIONS(11), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(21), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10776,15 +10830,69 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8531] = 15, - ACTIONS(7), 1, + [8600] = 15, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(386), 1, + anon_sym_let, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(13), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(15), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(17), 1, - sym_negative_digits, + ACTIONS(396), 1, + sym_positive_digits, + ACTIONS(400), 1, + anon_sym_LBRACK, + ACTIONS(402), 1, + anon_sym_Dict, + ACTIONS(404), 1, + anon_sym_if, + ACTIONS(406), 1, + aux_sym_variable_identifier_token1, + STATE(413), 1, + sym_expression, + STATE(458), 1, + sym_digits, + ACTIONS(390), 2, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + ACTIONS(398), 2, + sym_float_literal, + sym_unit, + STATE(431), 22, + sym_paren_expression, + sym_bool_literal, + sym_function_call, + sym_let_expression, + sym_string_literal, + sym_char_literal, + sym_infix_operation, + sym_int8_literal, + sym_uint8_literal, + sym_int16_literal, + sym_uint16_literal, + sym_int32_literal, + sym_uint32_literal, + sym_int64_literal, + sym_uint64_literal, + sym_int128_literal, + sym_uint128_literal, + sym_list_literal, + sym_dict_literal, + sym_tuple_literal, + sym_if_expression, + sym_variable_identifier, + [8669] = 15, + ACTIONS(7), 1, + anon_sym_LPAREN, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(15), 1, + anon_sym_SQUOTE, + ACTIONS(17), 1, + sym_negative_digits, ACTIONS(19), 1, sym_positive_digits, ACTIONS(23), 1, @@ -10797,7 +10905,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(175), 1, anon_sym_let, - STATE(272), 1, + STATE(267), 1, sym_expression, STATE(461), 1, sym_digits, @@ -10807,7 +10915,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10830,7 +10938,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8600] = 15, + [8738] = 15, ACTIONS(7), 1, anon_sym_LPAREN, ACTIONS(13), 1, @@ -10851,7 +10959,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(175), 1, anon_sym_let, - STATE(273), 1, + STATE(268), 1, sym_expression, STATE(461), 1, sym_digits, @@ -10861,7 +10969,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10884,38 +10992,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8669] = 15, + [8807] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(404), 1, - anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(199), 1, + STATE(344), 1, sym_expression, - STATE(470), 1, + STATE(464), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10938,38 +11046,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8738] = 15, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(97), 1, - anon_sym_let, - ACTIONS(99), 1, + [8876] = 15, + ACTIONS(7), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(13), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(15), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(17), 1, + sym_negative_digits, + ACTIONS(19), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(25), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(27), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(29), 1, aux_sym_variable_identifier_token1, - STATE(257), 1, + ACTIONS(175), 1, + anon_sym_let, + STATE(269), 1, sym_expression, - STATE(471), 1, + STATE(461), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(11), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -10992,7 +11100,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8807] = 15, + [8945] = 15, ACTIONS(7), 1, anon_sym_LPAREN, ACTIONS(13), 1, @@ -11013,7 +11121,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_variable_identifier_token1, ACTIONS(175), 1, anon_sym_let, - STATE(275), 1, + STATE(214), 1, sym_expression, STATE(461), 1, sym_digits, @@ -11023,7 +11131,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 2, sym_float_literal, sym_unit, - STATE(289), 22, + STATE(288), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11046,7 +11154,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8876] = 15, + [9014] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -11067,7 +11175,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(390), 1, + STATE(385), 1, sym_expression, STATE(464), 1, sym_digits, @@ -11100,7 +11208,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [8945] = 15, + [9083] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -11121,7 +11229,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(442), 1, + STATE(348), 1, sym_expression, STATE(464), 1, sym_digits, @@ -11154,7 +11262,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9014] = 15, + [9152] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -11175,7 +11283,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(437), 1, + STATE(349), 1, sym_expression, STATE(464), 1, sym_digits, @@ -11208,38 +11316,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9083] = 15, + [9221] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(368), 1, - anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(401), 1, + STATE(442), 1, sym_expression, - STATE(458), 1, + STATE(464), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11262,38 +11370,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9152] = 15, + [9290] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(113), 1, - anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(315), 1, + STATE(350), 1, sym_expression, - STATE(471), 1, + STATE(464), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11316,7 +11424,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9221] = 15, + [9359] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -11337,7 +11445,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(429), 1, + STATE(433), 1, sym_expression, STATE(464), 1, sym_digits, @@ -11370,38 +11478,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9290] = 15, + [9428] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(404), 1, - anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(208), 1, + STATE(429), 1, sym_expression, - STATE(470), 1, + STATE(464), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11424,35 +11532,35 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9359] = 15, + [9497] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(368), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(426), 1, + STATE(401), 1, sym_expression, STATE(458), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, STATE(431), 22, @@ -11478,38 +11586,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9428] = 15, + [9566] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(404), 1, - anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(408), 1, - aux_sym_variable_identifier_token1, - STATE(201), 1, - sym_expression, - STATE(470), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, + aux_sym_variable_identifier_token1, + STATE(351), 1, + sym_expression, + STATE(464), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11532,7 +11640,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9497] = 15, + [9635] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -11553,7 +11661,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(375), 1, + STATE(352), 1, sym_expression, STATE(464), 1, sym_digits, @@ -11586,38 +11694,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9566] = 15, + [9704] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(404), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(378), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(176), 1, + STATE(163), 1, sym_expression, STATE(470), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11640,38 +11748,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9635] = 15, + [9773] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(378), 1, + anon_sym_if, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(346), 1, + STATE(198), 1, sym_expression, - STATE(464), 1, + STATE(470), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11694,38 +11802,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9704] = 15, + [9842] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(378), 1, + anon_sym_if, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(347), 1, + STATE(212), 1, sym_expression, - STATE(464), 1, + STATE(470), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11748,38 +11856,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9773] = 15, + [9911] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(97), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(99), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(105), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(107), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(111), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(113), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(115), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(117), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(263), 1, + STATE(426), 1, sym_expression, - STATE(471), 1, + STATE(458), 1, sym_digits, - ACTIONS(101), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(109), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(303), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11802,38 +11910,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9842] = 15, + [9980] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(360), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(362), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(366), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(368), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(370), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(374), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(376), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(378), 1, + anon_sym_if, + ACTIONS(380), 1, aux_sym_variable_identifier_token1, - STATE(348), 1, + STATE(159), 1, sym_expression, - STATE(464), 1, + STATE(470), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(364), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(372), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(190), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11856,7 +11964,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9911] = 15, + [10049] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -11877,7 +11985,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(413), 1, + STATE(374), 1, sym_expression, STATE(464), 1, sym_digits, @@ -11910,38 +12018,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [9980] = 15, + [10118] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(352), 1, + ACTIONS(33), 1, anon_sym_let, - ACTIONS(354), 1, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(358), 1, + ACTIONS(39), 1, anon_sym_DQUOTE, - ACTIONS(360), 1, + ACTIONS(41), 1, anon_sym_SQUOTE, - ACTIONS(362), 1, + ACTIONS(43), 1, sym_positive_digits, - ACTIONS(366), 1, + ACTIONS(47), 1, anon_sym_LBRACK, - ACTIONS(368), 1, - anon_sym_Dict, - ACTIONS(370), 1, + ACTIONS(51), 1, anon_sym_if, - ACTIONS(372), 1, + ACTIONS(57), 1, + anon_sym_Dict, + ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(435), 1, + STATE(412), 1, sym_expression, - STATE(458), 1, + STATE(464), 1, sym_digits, - ACTIONS(356), 2, + ACTIONS(37), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(364), 2, + ACTIONS(45), 2, sym_float_literal, sym_unit, - STATE(431), 22, + STATE(331), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -11964,38 +12072,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10049] = 15, + [10187] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(404), 1, + anon_sym_if, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(349), 1, + STATE(435), 1, sym_expression, - STATE(464), 1, + STATE(458), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -12018,7 +12126,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10118] = 15, + [10256] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -12039,7 +12147,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(372), 1, + STATE(375), 1, sym_expression, STATE(464), 1, sym_digits, @@ -12072,7 +12180,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10187] = 15, + [10325] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(97), 1, @@ -12093,7 +12201,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(219), 1, + STATE(314), 1, sym_expression, STATE(471), 1, sym_digits, @@ -12126,7 +12234,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10256] = 15, + [10394] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -12147,7 +12255,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(350), 1, + STATE(408), 1, sym_expression, STATE(464), 1, sym_digits, @@ -12180,38 +12288,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10325] = 15, + [10463] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(33), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(35), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(41), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(43), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(47), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(61), 1, + ACTIONS(115), 1, + anon_sym_if, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(408), 1, + STATE(263), 1, sym_expression, - STATE(464), 1, + STATE(471), 1, sym_digits, - ACTIONS(37), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(45), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(331), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -12234,38 +12342,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10394] = 15, + [10532] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(386), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(388), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(392), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(394), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(396), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(400), 1, anon_sym_LBRACK, - ACTIONS(404), 1, + ACTIONS(402), 1, anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(404), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(406), 1, aux_sym_variable_identifier_token1, - STATE(204), 1, + STATE(410), 1, sym_expression, - STATE(470), 1, + STATE(458), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(390), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(398), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(431), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -12288,38 +12396,38 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10463] = 15, + [10601] = 15, ACTIONS(17), 1, sym_negative_digits, - ACTIONS(388), 1, + ACTIONS(97), 1, anon_sym_let, - ACTIONS(390), 1, + ACTIONS(99), 1, anon_sym_LPAREN, - ACTIONS(394), 1, + ACTIONS(103), 1, anon_sym_DQUOTE, - ACTIONS(396), 1, + ACTIONS(105), 1, anon_sym_SQUOTE, - ACTIONS(398), 1, + ACTIONS(107), 1, sym_positive_digits, - ACTIONS(402), 1, + ACTIONS(111), 1, anon_sym_LBRACK, - ACTIONS(404), 1, + ACTIONS(113), 1, anon_sym_Dict, - ACTIONS(406), 1, + ACTIONS(115), 1, anon_sym_if, - ACTIONS(408), 1, + ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(203), 1, + STATE(220), 1, sym_expression, - STATE(470), 1, + STATE(471), 1, sym_digits, - ACTIONS(392), 2, + ACTIONS(101), 2, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - ACTIONS(400), 2, + ACTIONS(109), 2, sym_float_literal, sym_unit, - STATE(189), 22, + STATE(303), 22, sym_paren_expression, sym_bool_literal, sym_function_call, @@ -12342,7 +12450,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10532] = 15, + [10670] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -12363,7 +12471,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(415), 1, + STATE(377), 1, sym_expression, STATE(464), 1, sym_digits, @@ -12396,61 +12504,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10601] = 15, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(352), 1, - anon_sym_let, - ACTIONS(354), 1, - anon_sym_LPAREN, - ACTIONS(358), 1, - anon_sym_DQUOTE, - ACTIONS(360), 1, - anon_sym_SQUOTE, - ACTIONS(362), 1, - sym_positive_digits, - ACTIONS(366), 1, - anon_sym_LBRACK, - ACTIONS(368), 1, - anon_sym_Dict, - ACTIONS(370), 1, - anon_sym_if, - ACTIONS(372), 1, - aux_sym_variable_identifier_token1, - STATE(410), 1, - sym_expression, - STATE(458), 1, - sym_digits, - ACTIONS(356), 2, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - ACTIONS(364), 2, - sym_float_literal, - sym_unit, - STATE(431), 22, - sym_paren_expression, - sym_bool_literal, - sym_function_call, - sym_let_expression, - sym_string_literal, - sym_char_literal, - sym_infix_operation, - sym_int8_literal, - sym_uint8_literal, - sym_int16_literal, - sym_uint16_literal, - sym_int32_literal, - sym_uint32_literal, - sym_int64_literal, - sym_uint64_literal, - sym_int128_literal, - sym_uint128_literal, - sym_list_literal, - sym_dict_literal, - sym_tuple_literal, - sym_if_expression, - sym_variable_identifier, - [10670] = 15, + [10739] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(97), 1, @@ -12471,7 +12525,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(218), 1, + STATE(219), 1, sym_expression, STATE(471), 1, sym_digits, @@ -12504,7 +12558,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10739] = 15, + [10808] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(33), 1, @@ -12525,7 +12579,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, ACTIONS(61), 1, aux_sym_variable_identifier_token1, - STATE(373), 1, + STATE(440), 1, sym_expression, STATE(464), 1, sym_digits, @@ -12558,7 +12612,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10808] = 15, + [10877] = 15, ACTIONS(17), 1, sym_negative_digits, ACTIONS(97), 1, @@ -12579,7 +12633,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(117), 1, aux_sym_variable_identifier_token1, - STATE(217), 1, + STATE(218), 1, sym_expression, STATE(471), 1, sym_digits, @@ -12612,60 +12666,6 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [10877] = 15, - ACTIONS(17), 1, - sym_negative_digits, - ACTIONS(33), 1, - anon_sym_let, - ACTIONS(35), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_DQUOTE, - ACTIONS(41), 1, - anon_sym_SQUOTE, - ACTIONS(43), 1, - sym_positive_digits, - ACTIONS(47), 1, - anon_sym_LBRACK, - ACTIONS(51), 1, - anon_sym_if, - ACTIONS(57), 1, - anon_sym_Dict, - ACTIONS(61), 1, - aux_sym_variable_identifier_token1, - STATE(440), 1, - sym_expression, - STATE(464), 1, - sym_digits, - ACTIONS(37), 2, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - ACTIONS(45), 2, - sym_float_literal, - sym_unit, - STATE(331), 22, - sym_paren_expression, - sym_bool_literal, - sym_function_call, - sym_let_expression, - sym_string_literal, - sym_char_literal, - sym_infix_operation, - sym_int8_literal, - sym_uint8_literal, - sym_int16_literal, - sym_uint16_literal, - sym_int32_literal, - sym_uint32_literal, - sym_int64_literal, - sym_uint64_literal, - sym_int128_literal, - sym_uint128_literal, - sym_list_literal, - sym_dict_literal, - sym_tuple_literal, - sym_if_expression, - sym_variable_identifier, [10946] = 15, ACTIONS(17), 1, sym_negative_digits, @@ -12720,11 +12720,13 @@ static const uint16_t ts_small_parse_table[] = { sym_tuple_literal, sym_if_expression, sym_variable_identifier, - [11015] = 2, + [11015] = 3, + ACTIONS(428), 1, + anon_sym_else, ACTIONS(426), 13, anon_sym_let, - anon_sym_EQ, anon_sym_LPAREN, + anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -12735,9 +12737,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(424), 18, + ACTIONS(424), 17, ts_builtin_sym_end, - anon_sym_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -12754,49 +12755,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11051] = 4, - ACTIONS(426), 5, - anon_sym_EQ, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(430), 6, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - ACTIONS(428), 8, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(424), 12, - anon_sym_RPAREN, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_COMMA, - [11091] = 3, - ACTIONS(436), 1, - anon_sym_else, - ACTIONS(434), 13, + [11053] = 2, + ACTIONS(432), 13, anon_sym_let, + anon_sym_EQ, anon_sym_LPAREN, - anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -12807,8 +12770,9 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(432), 17, + ACTIONS(430), 18, ts_builtin_sym_end, + anon_sym_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -12825,26 +12789,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11129] = 2, - ACTIONS(440), 14, - anon_sym_let, - anon_sym_LPAREN, - anon_sym_type, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, + [11089] = 4, + ACTIONS(432), 5, + anon_sym_EQ, anon_sym_PLUS, anon_sym_DASH, anon_sym_LT, anon_sym_GT, + ACTIONS(436), 6, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + ACTIONS(434), 8, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, sym_negative_digits, sym_positive_digits, anon_sym_if, - anon_sym_else, aux_sym_variable_identifier_token1, - ACTIONS(438), 17, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, + ACTIONS(430), 12, + anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -12855,14 +12824,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - [11165] = 3, - ACTIONS(446), 1, + anon_sym_COMMA, + [11129] = 3, + ACTIONS(442), 1, anon_sym_else, - ACTIONS(444), 13, + ACTIONS(440), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -12876,7 +12842,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(442), 17, + ACTIONS(438), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -12894,8 +12860,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11203] = 2, - ACTIONS(450), 13, + [11167] = 2, + ACTIONS(446), 14, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -12908,8 +12874,9 @@ static const uint16_t ts_small_parse_table[] = { sym_negative_digits, sym_positive_digits, anon_sym_if, + anon_sym_else, aux_sym_variable_identifier_token1, - ACTIONS(448), 17, + ACTIONS(444), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -12927,30 +12894,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11238] = 3, + [11203] = 4, ACTIONS(452), 1, - anon_sym_else, - ACTIONS(444), 12, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(442), 17, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, anon_sym_CARET, + ACTIONS(454), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, + ACTIONS(448), 13, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -12961,10 +12915,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11275] = 2, - ACTIONS(440), 13, + ACTIONS(450), 13, anon_sym_let, anon_sym_LPAREN, + anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -12974,9 +12928,65 @@ static const uint16_t ts_small_parse_table[] = { sym_negative_digits, sym_positive_digits, anon_sym_if, - anon_sym_else, aux_sym_variable_identifier_token1, - ACTIONS(438), 17, + [11242] = 11, + ACTIONS(456), 1, + anon_sym_LPAREN, + ACTIONS(458), 1, + anon_sym_Dict, + ACTIONS(462), 1, + anon_sym_List, + ACTIONS(464), 1, + aux_sym_type_identifier_token1, + STATE(366), 1, + sym_type_identifier, + STATE(472), 1, + aux_sym_qualified_fn_name_repeat1, + STATE(507), 1, + sym_type_reference, + STATE(543), 1, + sym_module_identifier, + STATE(365), 2, + sym_builtin_type, + sym_qualified_type_name, + STATE(364), 3, + sym_list_type_reference, + sym_tuple_type_reference, + sym_dict_type_reference, + ACTIONS(460), 17, + aux_sym_builtin_type_token1, + aux_sym_builtin_type_token2, + aux_sym_builtin_type_token3, + aux_sym_builtin_type_token4, + aux_sym_builtin_type_token5, + aux_sym_builtin_type_token6, + aux_sym_builtin_type_token7, + aux_sym_builtin_type_token8, + aux_sym_builtin_type_token9, + aux_sym_builtin_type_token10, + aux_sym_builtin_type_token11, + aux_sym_builtin_type_token12, + aux_sym_builtin_type_token13, + aux_sym_builtin_type_token14, + aux_sym_builtin_type_token15, + aux_sym_builtin_type_token16, + aux_sym_builtin_type_token17, + [11295] = 2, + ACTIONS(468), 13, + anon_sym_let, + anon_sym_LPAREN, + anon_sym_type, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(466), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -12994,67 +13004,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11310] = 8, - ACTIONS(458), 1, - anon_sym_CARET, - ACTIONS(462), 2, + [11330] = 2, + ACTIONS(472), 13, + anon_sym_let, + anon_sym_LPAREN, + anon_sym_type, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(466), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(468), 2, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - ACTIONS(460), 3, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(470), 17, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(464), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(454), 7, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(456), 9, - anon_sym_let, - anon_sym_LPAREN, - anon_sym_type, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [11357] = 8, - ACTIONS(458), 1, + [11365] = 8, + ACTIONS(452), 1, anon_sym_CARET, - ACTIONS(462), 2, + ACTIONS(478), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(466), 2, + ACTIONS(482), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(468), 2, + ACTIONS(484), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(460), 3, + ACTIONS(454), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(464), 4, + ACTIONS(480), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(470), 7, + ACTIONS(474), 7, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13062,7 +13066,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(472), 9, + ACTIONS(476), 9, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13072,11 +13076,10 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [11404] = 2, - ACTIONS(476), 13, + [11412] = 2, + ACTIONS(446), 13, anon_sym_let, anon_sym_LPAREN, - anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -13086,8 +13089,9 @@ static const uint16_t ts_small_parse_table[] = { sym_negative_digits, sym_positive_digits, anon_sym_if, + anon_sym_else, aux_sym_variable_identifier_token1, - ACTIONS(474), 17, + ACTIONS(444), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13105,8 +13109,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11439] = 2, - ACTIONS(480), 13, + [11447] = 8, + ACTIONS(452), 1, + anon_sym_CARET, + ACTIONS(478), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(482), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(484), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(454), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(480), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(486), 7, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + ACTIONS(488), 9, + anon_sym_let, + anon_sym_LPAREN, + anon_sym_type, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [11494] = 2, + ACTIONS(492), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13120,7 +13163,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(478), 17, + ACTIONS(490), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13138,28 +13181,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11474] = 8, - ACTIONS(458), 1, + [11529] = 8, + ACTIONS(452), 1, anon_sym_CARET, - ACTIONS(462), 2, + ACTIONS(478), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(466), 2, + ACTIONS(482), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(468), 2, + ACTIONS(484), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(460), 3, + ACTIONS(454), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(464), 4, + ACTIONS(480), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(482), 7, + ACTIONS(494), 7, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13167,7 +13210,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(484), 9, + ACTIONS(496), 9, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13177,8 +13220,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [11521] = 2, - ACTIONS(488), 13, + [11576] = 2, + ACTIONS(500), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13192,7 +13235,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(486), 17, + ACTIONS(498), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13210,8 +13253,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11556] = 2, - ACTIONS(492), 13, + [11611] = 8, + ACTIONS(452), 1, + anon_sym_CARET, + ACTIONS(478), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(482), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(484), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(454), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(480), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(502), 7, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + ACTIONS(504), 9, + anon_sym_let, + anon_sym_LPAREN, + anon_sym_type, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [11658] = 2, + ACTIONS(508), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13225,7 +13307,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(490), 17, + ACTIONS(506), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13243,8 +13325,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11591] = 2, - ACTIONS(426), 13, + [11693] = 2, + ACTIONS(512), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13258,7 +13340,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(424), 17, + ACTIONS(510), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13276,8 +13358,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11626] = 2, - ACTIONS(496), 13, + [11728] = 2, + ACTIONS(516), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13291,7 +13373,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(494), 17, + ACTIONS(514), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13309,8 +13391,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11661] = 2, - ACTIONS(500), 13, + [11763] = 2, + ACTIONS(520), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13324,7 +13406,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(498), 17, + ACTIONS(518), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13342,11 +13424,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11696] = 2, - ACTIONS(504), 13, + [11798] = 3, + ACTIONS(522), 1, + anon_sym_else, + ACTIONS(440), 12, anon_sym_let, anon_sym_LPAREN, - anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -13357,7 +13440,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(502), 17, + ACTIONS(438), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13375,31 +13458,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11731] = 11, - ACTIONS(506), 1, + [11835] = 11, + ACTIONS(456), 1, anon_sym_LPAREN, - ACTIONS(508), 1, + ACTIONS(458), 1, anon_sym_Dict, - ACTIONS(512), 1, + ACTIONS(462), 1, anon_sym_List, - ACTIONS(514), 1, + ACTIONS(464), 1, aux_sym_type_identifier_token1, - STATE(363), 1, + STATE(366), 1, sym_type_identifier, STATE(472), 1, aux_sym_qualified_fn_name_repeat1, - STATE(507), 1, + STATE(473), 1, sym_type_reference, STATE(543), 1, sym_module_identifier, - STATE(364), 2, + STATE(365), 2, sym_builtin_type, sym_qualified_type_name, - STATE(365), 3, + STATE(364), 3, sym_list_type_reference, sym_tuple_type_reference, sym_dict_type_reference, - ACTIONS(510), 17, + ACTIONS(460), 17, aux_sym_builtin_type_token1, aux_sym_builtin_type_token2, aux_sym_builtin_type_token3, @@ -13417,11 +13500,10 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_builtin_type_token15, aux_sym_builtin_type_token16, aux_sym_builtin_type_token17, - [11784] = 2, - ACTIONS(518), 13, + [11888] = 2, + ACTIONS(446), 13, anon_sym_let, anon_sym_LPAREN, - anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -13431,9 +13513,10 @@ static const uint16_t ts_small_parse_table[] = { sym_negative_digits, sym_positive_digits, anon_sym_if, + anon_sym_else, aux_sym_variable_identifier_token1, - ACTIONS(516), 17, - ts_builtin_sym_end, + ACTIONS(444), 17, + anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -13450,8 +13533,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11819] = 2, - ACTIONS(522), 13, + [11923] = 2, + ACTIONS(526), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13465,7 +13548,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(520), 17, + ACTIONS(524), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13483,47 +13566,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11854] = 8, - ACTIONS(458), 1, - anon_sym_CARET, - ACTIONS(462), 2, + [11958] = 2, + ACTIONS(530), 13, + anon_sym_let, + anon_sym_LPAREN, + anon_sym_type, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(466), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(468), 2, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - ACTIONS(460), 3, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(528), 17, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(464), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(524), 7, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(526), 9, + [11993] = 2, + ACTIONS(534), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, sym_negative_digits, sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [11901] = 2, - ACTIONS(530), 13, + ACTIONS(532), 17, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + [12028] = 2, + ACTIONS(538), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13537,7 +13647,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(528), 17, + ACTIONS(536), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13555,8 +13665,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11936] = 2, - ACTIONS(534), 13, + [12063] = 2, + ACTIONS(542), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13570,7 +13680,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(532), 17, + ACTIONS(540), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13588,8 +13698,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [11971] = 2, - ACTIONS(538), 13, + [12098] = 2, + ACTIONS(546), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13603,7 +13713,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(536), 17, + ACTIONS(544), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13621,8 +13731,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12006] = 2, - ACTIONS(542), 13, + [12133] = 2, + ACTIONS(446), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13636,7 +13746,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(540), 17, + ACTIONS(444), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13654,8 +13764,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12041] = 2, - ACTIONS(440), 13, + [12168] = 2, + ACTIONS(446), 13, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -13669,8 +13779,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, aux_sym_variable_identifier_token1, - ACTIONS(438), 17, - anon_sym_RPAREN, + ACTIONS(444), 17, + sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -13687,12 +13797,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12076] = 3, - ACTIONS(544), 1, - anon_sym_else, - ACTIONS(434), 12, + [12203] = 2, + ACTIONS(550), 13, anon_sym_let, anon_sym_LPAREN, + anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -13703,7 +13812,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(432), 17, + ACTIONS(548), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13721,51 +13830,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12113] = 11, - ACTIONS(506), 1, - anon_sym_LPAREN, - ACTIONS(508), 1, - anon_sym_Dict, - ACTIONS(512), 1, - anon_sym_List, - ACTIONS(514), 1, - aux_sym_type_identifier_token1, - STATE(363), 1, - sym_type_identifier, - STATE(472), 1, - aux_sym_qualified_fn_name_repeat1, - STATE(473), 1, - sym_type_reference, - STATE(543), 1, - sym_module_identifier, - STATE(364), 2, - sym_builtin_type, - sym_qualified_type_name, - STATE(365), 3, - sym_list_type_reference, - sym_tuple_type_reference, - sym_dict_type_reference, - ACTIONS(510), 17, - aux_sym_builtin_type_token1, - aux_sym_builtin_type_token2, - aux_sym_builtin_type_token3, - aux_sym_builtin_type_token4, - aux_sym_builtin_type_token5, - aux_sym_builtin_type_token6, - aux_sym_builtin_type_token7, - aux_sym_builtin_type_token8, - aux_sym_builtin_type_token9, - aux_sym_builtin_type_token10, - aux_sym_builtin_type_token11, - aux_sym_builtin_type_token12, - aux_sym_builtin_type_token13, - aux_sym_builtin_type_token14, - aux_sym_builtin_type_token15, - aux_sym_builtin_type_token16, - aux_sym_builtin_type_token17, - [12166] = 2, - ACTIONS(440), 13, - anon_sym_let, + [12238] = 2, + ACTIONS(554), 13, + anon_sym_let, anon_sym_LPAREN, anon_sym_type, aux_sym_bool_literal_token1, @@ -13778,7 +13845,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(438), 17, + ACTIONS(552), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13796,8 +13863,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12201] = 2, - ACTIONS(548), 13, + [12273] = 2, + ACTIONS(558), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13811,7 +13878,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(546), 17, + ACTIONS(556), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13829,8 +13896,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12236] = 2, - ACTIONS(552), 13, + [12308] = 2, + ACTIONS(562), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13844,7 +13911,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(550), 17, + ACTIONS(560), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13862,8 +13929,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12271] = 2, - ACTIONS(556), 13, + [12343] = 2, + ACTIONS(432), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13877,7 +13944,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(554), 17, + ACTIONS(430), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13895,8 +13962,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12306] = 2, - ACTIONS(560), 13, + [12378] = 2, + ACTIONS(566), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13910,7 +13977,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(558), 17, + ACTIONS(564), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13928,8 +13995,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12341] = 2, - ACTIONS(564), 13, + [12413] = 2, + ACTIONS(570), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -13943,7 +14010,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(562), 17, + ACTIONS(568), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -13961,74 +14028,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12376] = 2, - ACTIONS(440), 13, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - anon_sym_else, - aux_sym_variable_identifier_token1, - ACTIONS(438), 17, - sym_dedent, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - [12411] = 2, - ACTIONS(568), 13, - anon_sym_let, - anon_sym_LPAREN, - anon_sym_type, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(566), 17, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - [12446] = 2, - ACTIONS(572), 13, + [12448] = 2, + ACTIONS(574), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -14042,7 +14043,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(570), 17, + ACTIONS(572), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14060,31 +14061,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12481] = 11, - ACTIONS(506), 1, + [12483] = 11, + ACTIONS(456), 1, anon_sym_LPAREN, - ACTIONS(508), 1, + ACTIONS(458), 1, anon_sym_Dict, - ACTIONS(512), 1, + ACTIONS(462), 1, anon_sym_List, - ACTIONS(514), 1, + ACTIONS(464), 1, aux_sym_type_identifier_token1, - STATE(363), 1, + STATE(366), 1, sym_type_identifier, - STATE(386), 1, + STATE(389), 1, sym_type_reference, STATE(472), 1, aux_sym_qualified_fn_name_repeat1, STATE(543), 1, sym_module_identifier, - STATE(364), 2, + STATE(365), 2, sym_builtin_type, sym_qualified_type_name, - STATE(365), 3, + STATE(364), 3, sym_list_type_reference, sym_tuple_type_reference, sym_dict_type_reference, - ACTIONS(510), 17, + ACTIONS(460), 17, aux_sym_builtin_type_token1, aux_sym_builtin_type_token2, aux_sym_builtin_type_token3, @@ -14102,16 +14103,16 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_builtin_type_token15, aux_sym_builtin_type_token16, aux_sym_builtin_type_token17, - [12534] = 11, - ACTIONS(506), 1, + [12536] = 11, + ACTIONS(456), 1, anon_sym_LPAREN, - ACTIONS(508), 1, + ACTIONS(458), 1, anon_sym_Dict, - ACTIONS(512), 1, + ACTIONS(462), 1, anon_sym_List, - ACTIONS(514), 1, + ACTIONS(464), 1, aux_sym_type_identifier_token1, - STATE(363), 1, + STATE(366), 1, sym_type_identifier, STATE(472), 1, aux_sym_qualified_fn_name_repeat1, @@ -14119,14 +14120,14 @@ static const uint16_t ts_small_parse_table[] = { sym_module_identifier, STATE(564), 1, sym_type_reference, - STATE(364), 2, + STATE(365), 2, sym_builtin_type, sym_qualified_type_name, - STATE(365), 3, + STATE(364), 3, sym_list_type_reference, sym_tuple_type_reference, sym_dict_type_reference, - ACTIONS(510), 17, + ACTIONS(460), 17, aux_sym_builtin_type_token1, aux_sym_builtin_type_token2, aux_sym_builtin_type_token3, @@ -14144,16 +14145,16 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_builtin_type_token15, aux_sym_builtin_type_token16, aux_sym_builtin_type_token17, - [12587] = 11, - ACTIONS(506), 1, + [12589] = 11, + ACTIONS(456), 1, anon_sym_LPAREN, - ACTIONS(508), 1, + ACTIONS(458), 1, anon_sym_Dict, - ACTIONS(512), 1, + ACTIONS(462), 1, anon_sym_List, - ACTIONS(514), 1, + ACTIONS(464), 1, aux_sym_type_identifier_token1, - STATE(363), 1, + STATE(366), 1, sym_type_identifier, STATE(472), 1, aux_sym_qualified_fn_name_repeat1, @@ -14161,14 +14162,14 @@ static const uint16_t ts_small_parse_table[] = { sym_module_identifier, STATE(567), 1, sym_type_reference, - STATE(364), 2, + STATE(365), 2, sym_builtin_type, sym_qualified_type_name, - STATE(365), 3, + STATE(364), 3, sym_list_type_reference, sym_tuple_type_reference, sym_dict_type_reference, - ACTIONS(510), 17, + ACTIONS(460), 17, aux_sym_builtin_type_token1, aux_sym_builtin_type_token2, aux_sym_builtin_type_token3, @@ -14186,8 +14187,8 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_builtin_type_token15, aux_sym_builtin_type_token16, aux_sym_builtin_type_token17, - [12640] = 2, - ACTIONS(576), 13, + [12642] = 2, + ACTIONS(578), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -14201,7 +14202,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(574), 17, + ACTIONS(576), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14219,8 +14220,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12675] = 2, - ACTIONS(580), 13, + [12677] = 2, + ACTIONS(582), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -14234,7 +14235,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(578), 17, + ACTIONS(580), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14252,8 +14253,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12710] = 2, - ACTIONS(584), 13, + [12712] = 3, + ACTIONS(452), 1, + anon_sym_CARET, + ACTIONS(450), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -14267,11 +14270,10 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(582), 17, + ACTIONS(448), 16, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, - anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -14285,48 +14287,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12745] = 7, - ACTIONS(458), 1, - anon_sym_CARET, - ACTIONS(462), 2, + [12749] = 3, + ACTIONS(584), 1, + anon_sym_else, + ACTIONS(440), 12, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(466), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(460), 3, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(438), 17, + anon_sym_RPAREN, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(464), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(586), 9, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(588), 9, - anon_sym_let, - anon_sym_LPAREN, - anon_sym_type, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [12790] = 3, - ACTIONS(590), 1, + [12786] = 3, + ACTIONS(586), 1, anon_sym_else, - ACTIONS(434), 12, + ACTIONS(440), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14339,7 +14337,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(432), 17, + ACTIONS(438), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14357,32 +14355,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12827] = 5, - ACTIONS(458), 1, - anon_sym_CARET, - ACTIONS(462), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(460), 3, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(588), 11, + [12823] = 2, + ACTIONS(590), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, sym_negative_digits, sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 13, + ACTIONS(588), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -14393,12 +14388,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12868] = 3, - ACTIONS(592), 1, - anon_sym_else, - ACTIONS(434), 12, + [12858] = 2, + ACTIONS(594), 13, anon_sym_let, anon_sym_LPAREN, + anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, anon_sym_PLUS, @@ -14409,8 +14403,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(432), 17, - anon_sym_RPAREN, + ACTIONS(592), 17, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -14427,17 +14421,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12905] = 4, - ACTIONS(458), 1, + [12893] = 3, + ACTIONS(596), 1, + anon_sym_else, + ACTIONS(426), 12, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(424), 17, + anon_sym_RPAREN, + anon_sym_DQUOTE, + anon_sym_SQUOTE, anon_sym_CARET, - ACTIONS(460), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(586), 13, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -14448,24 +14455,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(588), 13, - anon_sym_let, + [12930] = 11, + ACTIONS(456), 1, anon_sym_LPAREN, - anon_sym_type, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [12944] = 3, ACTIONS(458), 1, - anon_sym_CARET, - ACTIONS(588), 13, + anon_sym_Dict, + ACTIONS(462), 1, + anon_sym_List, + ACTIONS(464), 1, + aux_sym_type_identifier_token1, + STATE(366), 1, + sym_type_identifier, + STATE(472), 1, + aux_sym_qualified_fn_name_repeat1, + STATE(515), 1, + sym_type_reference, + STATE(543), 1, + sym_module_identifier, + STATE(365), 2, + sym_builtin_type, + sym_qualified_type_name, + STATE(364), 3, + sym_list_type_reference, + sym_tuple_type_reference, + sym_dict_type_reference, + ACTIONS(460), 17, + aux_sym_builtin_type_token1, + aux_sym_builtin_type_token2, + aux_sym_builtin_type_token3, + aux_sym_builtin_type_token4, + aux_sym_builtin_type_token5, + aux_sym_builtin_type_token6, + aux_sym_builtin_type_token7, + aux_sym_builtin_type_token8, + aux_sym_builtin_type_token9, + aux_sym_builtin_type_token10, + aux_sym_builtin_type_token11, + aux_sym_builtin_type_token12, + aux_sym_builtin_type_token13, + aux_sym_builtin_type_token14, + aux_sym_builtin_type_token15, + aux_sym_builtin_type_token16, + aux_sym_builtin_type_token17, + [12983] = 11, + ACTIONS(456), 1, + anon_sym_LPAREN, + ACTIONS(458), 1, + anon_sym_Dict, + ACTIONS(462), 1, + anon_sym_List, + ACTIONS(464), 1, + aux_sym_type_identifier_token1, + STATE(366), 1, + sym_type_identifier, + STATE(472), 1, + aux_sym_qualified_fn_name_repeat1, + STATE(512), 1, + sym_type_reference, + STATE(543), 1, + sym_module_identifier, + STATE(365), 2, + sym_builtin_type, + sym_qualified_type_name, + STATE(364), 3, + sym_list_type_reference, + sym_tuple_type_reference, + sym_dict_type_reference, + ACTIONS(460), 17, + aux_sym_builtin_type_token1, + aux_sym_builtin_type_token2, + aux_sym_builtin_type_token3, + aux_sym_builtin_type_token4, + aux_sym_builtin_type_token5, + aux_sym_builtin_type_token6, + aux_sym_builtin_type_token7, + aux_sym_builtin_type_token8, + aux_sym_builtin_type_token9, + aux_sym_builtin_type_token10, + aux_sym_builtin_type_token11, + aux_sym_builtin_type_token12, + aux_sym_builtin_type_token13, + aux_sym_builtin_type_token14, + aux_sym_builtin_type_token15, + aux_sym_builtin_type_token16, + aux_sym_builtin_type_token17, + [13036] = 2, + ACTIONS(600), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -14479,10 +14554,11 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, + ACTIONS(598), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -14496,46 +14572,130 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [12981] = 2, - ACTIONS(596), 13, + [13071] = 5, + ACTIONS(452), 1, + anon_sym_CARET, + ACTIONS(478), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(454), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(450), 11, anon_sym_let, anon_sym_LPAREN, anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, sym_negative_digits, sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(594), 17, + ACTIONS(448), 13, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + [13112] = 11, + ACTIONS(456), 1, + anon_sym_LPAREN, + ACTIONS(458), 1, + anon_sym_Dict, + ACTIONS(462), 1, + anon_sym_List, + ACTIONS(464), 1, + aux_sym_type_identifier_token1, + STATE(366), 1, + sym_type_identifier, + STATE(472), 1, + aux_sym_qualified_fn_name_repeat1, + STATE(524), 1, + sym_type_reference, + STATE(543), 1, + sym_module_identifier, + STATE(365), 2, + sym_builtin_type, + sym_qualified_type_name, + STATE(364), 3, + sym_list_type_reference, + sym_tuple_type_reference, + sym_dict_type_reference, + ACTIONS(460), 17, + aux_sym_builtin_type_token1, + aux_sym_builtin_type_token2, + aux_sym_builtin_type_token3, + aux_sym_builtin_type_token4, + aux_sym_builtin_type_token5, + aux_sym_builtin_type_token6, + aux_sym_builtin_type_token7, + aux_sym_builtin_type_token8, + aux_sym_builtin_type_token9, + aux_sym_builtin_type_token10, + aux_sym_builtin_type_token11, + aux_sym_builtin_type_token12, + aux_sym_builtin_type_token13, + aux_sym_builtin_type_token14, + aux_sym_builtin_type_token15, + aux_sym_builtin_type_token16, + aux_sym_builtin_type_token17, + [13165] = 7, + ACTIONS(452), 1, anon_sym_CARET, + ACTIONS(478), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(482), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(454), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, + ACTIONS(480), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + ACTIONS(448), 9, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13016] = 2, - ACTIONS(600), 13, + ACTIONS(450), 9, anon_sym_let, anon_sym_LPAREN, anon_sym_type, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [13210] = 3, + ACTIONS(602), 1, + anon_sym_else, + ACTIONS(426), 12, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, anon_sym_PLUS, anon_sym_DASH, anon_sym_LT, @@ -14544,8 +14704,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(598), 17, - ts_builtin_sym_end, + ACTIONS(424), 17, + sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -14562,10 +14722,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13051] = 3, - ACTIONS(602), 1, + [13247] = 3, + ACTIONS(604), 1, anon_sym_else, - ACTIONS(444), 12, + ACTIONS(426), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14578,8 +14738,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(442), 17, - anon_sym_RPAREN, + ACTIONS(424), 17, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -14596,10 +14756,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13088] = 3, - ACTIONS(458), 1, + [13284] = 3, + ACTIONS(452), 1, anon_sym_CARET, - ACTIONS(588), 13, + ACTIONS(450), 13, anon_sym_let, anon_sym_LPAREN, anon_sym_type, @@ -14613,7 +14773,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, + ACTIONS(448), 16, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14624,58 +14784,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - [13125] = 11, - ACTIONS(506), 1, - anon_sym_LPAREN, - ACTIONS(508), 1, - anon_sym_Dict, - ACTIONS(512), 1, - anon_sym_List, - ACTIONS(514), 1, - aux_sym_type_identifier_token1, - STATE(363), 1, - sym_type_identifier, - STATE(472), 1, - aux_sym_qualified_fn_name_repeat1, - STATE(524), 1, - sym_type_reference, - STATE(543), 1, - sym_module_identifier, - STATE(364), 2, - sym_builtin_type, - sym_qualified_type_name, - STATE(365), 3, - sym_list_type_reference, - sym_tuple_type_reference, - sym_dict_type_reference, - ACTIONS(510), 17, - aux_sym_builtin_type_token1, - aux_sym_builtin_type_token2, - aux_sym_builtin_type_token3, - aux_sym_builtin_type_token4, - aux_sym_builtin_type_token5, - aux_sym_builtin_type_token6, - aux_sym_builtin_type_token7, - aux_sym_builtin_type_token8, - aux_sym_builtin_type_token9, - aux_sym_builtin_type_token10, - aux_sym_builtin_type_token11, - aux_sym_builtin_type_token12, - aux_sym_builtin_type_token13, - aux_sym_builtin_type_token14, - aux_sym_builtin_type_token15, - aux_sym_builtin_type_token16, - aux_sym_builtin_type_token17, - [13178] = 3, - ACTIONS(604), 1, - anon_sym_else, - ACTIONS(444), 12, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + [13321] = 2, + ACTIONS(512), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14688,8 +14804,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(442), 17, - sym_dedent, + ACTIONS(510), 17, + anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -14706,94 +14822,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13215] = 11, - ACTIONS(506), 1, - anon_sym_LPAREN, - ACTIONS(508), 1, - anon_sym_Dict, - ACTIONS(512), 1, - anon_sym_List, - ACTIONS(514), 1, - aux_sym_type_identifier_token1, - STATE(363), 1, - sym_type_identifier, - STATE(472), 1, - aux_sym_qualified_fn_name_repeat1, - STATE(515), 1, - sym_type_reference, - STATE(543), 1, - sym_module_identifier, - STATE(364), 2, - sym_builtin_type, - sym_qualified_type_name, - STATE(365), 3, - sym_list_type_reference, - sym_tuple_type_reference, - sym_dict_type_reference, - ACTIONS(510), 17, - aux_sym_builtin_type_token1, - aux_sym_builtin_type_token2, - aux_sym_builtin_type_token3, - aux_sym_builtin_type_token4, - aux_sym_builtin_type_token5, - aux_sym_builtin_type_token6, - aux_sym_builtin_type_token7, - aux_sym_builtin_type_token8, - aux_sym_builtin_type_token9, - aux_sym_builtin_type_token10, - aux_sym_builtin_type_token11, - aux_sym_builtin_type_token12, - aux_sym_builtin_type_token13, - aux_sym_builtin_type_token14, - aux_sym_builtin_type_token15, - aux_sym_builtin_type_token16, - aux_sym_builtin_type_token17, - [13268] = 11, - ACTIONS(506), 1, - anon_sym_LPAREN, - ACTIONS(508), 1, - anon_sym_Dict, - ACTIONS(512), 1, - anon_sym_List, - ACTIONS(514), 1, - aux_sym_type_identifier_token1, - STATE(363), 1, - sym_type_identifier, - STATE(472), 1, - aux_sym_qualified_fn_name_repeat1, - STATE(512), 1, - sym_type_reference, - STATE(543), 1, - sym_module_identifier, - STATE(364), 2, - sym_builtin_type, - sym_qualified_type_name, - STATE(365), 3, - sym_list_type_reference, - sym_tuple_type_reference, - sym_dict_type_reference, - ACTIONS(510), 17, - aux_sym_builtin_type_token1, - aux_sym_builtin_type_token2, - aux_sym_builtin_type_token3, - aux_sym_builtin_type_token4, - aux_sym_builtin_type_token5, - aux_sym_builtin_type_token6, - aux_sym_builtin_type_token7, - aux_sym_builtin_type_token8, - aux_sym_builtin_type_token9, - aux_sym_builtin_type_token10, - aux_sym_builtin_type_token11, - aux_sym_builtin_type_token12, - aux_sym_builtin_type_token13, - aux_sym_builtin_type_token14, - aux_sym_builtin_type_token15, - aux_sym_builtin_type_token16, - aux_sym_builtin_type_token17, - [13321] = 3, + [13355] = 3, ACTIONS(606), 1, anon_sym_CARET, - ACTIONS(588), 12, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14806,8 +14838,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, - anon_sym_RPAREN, + ACTIONS(448), 16, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_STAR, @@ -14823,8 +14855,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13357] = 2, - ACTIONS(488), 12, + [13391] = 2, + ACTIONS(512), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14837,7 +14869,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(486), 17, + ACTIONS(510), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14855,8 +14887,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13391] = 2, - ACTIONS(576), 12, + [13425] = 2, + ACTIONS(582), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14869,7 +14901,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(574), 17, + ACTIONS(580), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14887,8 +14919,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13425] = 2, - ACTIONS(584), 12, + [13459] = 2, + ACTIONS(594), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14901,7 +14933,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(582), 17, + ACTIONS(592), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14919,7 +14951,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13459] = 7, + [13493] = 7, ACTIONS(608), 1, anon_sym_CARET, ACTIONS(612), 2, @@ -14937,7 +14969,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(588), 8, + ACTIONS(450), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14946,7 +14978,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 9, + ACTIONS(448), 9, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14956,7 +14988,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13503] = 5, + [13537] = 5, ACTIONS(608), 1, anon_sym_CARET, ACTIONS(612), 2, @@ -14966,7 +14998,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(588), 10, + ACTIONS(450), 10, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -14977,7 +15009,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 13, + ACTIONS(448), 13, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -14991,14 +15023,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13543] = 4, + [13577] = 4, ACTIONS(608), 1, anon_sym_CARET, ACTIONS(610), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(588), 12, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15011,7 +15043,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 13, + ACTIONS(448), 13, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15025,40 +15057,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [13581] = 2, - ACTIONS(500), 12, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(498), 17, - anon_sym_RPAREN, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, [13615] = 2, - ACTIONS(564), 12, + ACTIONS(574), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15071,7 +15071,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(562), 17, + ACTIONS(572), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15090,7 +15090,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13649] = 2, - ACTIONS(426), 12, + ACTIONS(566), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15103,7 +15103,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(424), 17, + ACTIONS(564), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15122,7 +15122,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13683] = 2, - ACTIONS(556), 12, + ACTIONS(432), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15135,7 +15135,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(554), 17, + ACTIONS(430), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15154,7 +15154,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13717] = 2, - ACTIONS(552), 12, + ACTIONS(562), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15167,7 +15167,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(550), 17, + ACTIONS(560), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15186,7 +15186,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13751] = 2, - ACTIONS(548), 12, + ACTIONS(558), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15199,7 +15199,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(546), 17, + ACTIONS(556), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15218,7 +15218,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13785] = 2, - ACTIONS(538), 12, + ACTIONS(554), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15231,7 +15231,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(536), 17, + ACTIONS(552), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15250,7 +15250,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13819] = 2, - ACTIONS(534), 12, + ACTIONS(538), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15263,7 +15263,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(532), 17, + ACTIONS(536), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15282,7 +15282,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13853] = 2, - ACTIONS(530), 12, + ACTIONS(534), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15295,7 +15295,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(528), 17, + ACTIONS(532), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15314,7 +15314,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13887] = 2, - ACTIONS(450), 12, + ACTIONS(530), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15327,7 +15327,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(448), 17, + ACTIONS(528), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15346,7 +15346,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13921] = 2, - ACTIONS(568), 12, + ACTIONS(526), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15359,8 +15359,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(566), 17, - ts_builtin_sym_end, + ACTIONS(524), 17, + anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -15378,7 +15378,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13955] = 2, - ACTIONS(576), 12, + ACTIONS(582), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15391,7 +15391,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(574), 17, + ACTIONS(580), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15410,7 +15410,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [13989] = 2, - ACTIONS(560), 12, + ACTIONS(578), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15423,7 +15423,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(558), 17, + ACTIONS(576), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15442,7 +15442,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [14023] = 2, - ACTIONS(476), 12, + ACTIONS(492), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15455,7 +15455,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(474), 17, + ACTIONS(490), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15474,7 +15474,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [14057] = 2, - ACTIONS(522), 12, + ACTIONS(472), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15487,7 +15487,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(520), 17, + ACTIONS(470), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15506,7 +15506,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [14091] = 2, - ACTIONS(496), 12, + ACTIONS(600), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15519,7 +15519,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(494), 17, + ACTIONS(598), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15538,7 +15538,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [14125] = 2, - ACTIONS(518), 12, + ACTIONS(468), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15551,7 +15551,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(516), 17, + ACTIONS(466), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15570,7 +15570,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [14159] = 2, - ACTIONS(440), 12, + ACTIONS(446), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15583,7 +15583,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(438), 17, + ACTIONS(444), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15634,7 +15634,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [14227] = 2, - ACTIONS(572), 12, + ACTIONS(546), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15647,7 +15647,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(570), 17, + ACTIONS(544), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15666,7 +15666,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [14261] = 2, - ACTIONS(596), 12, + ACTIONS(550), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15679,7 +15679,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(594), 17, + ACTIONS(548), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15697,80 +15697,81 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14295] = 2, - ACTIONS(600), 12, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, + [14295] = 8, + ACTIONS(606), 1, + anon_sym_CARET, + ACTIONS(620), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(598), 17, - anon_sym_RPAREN, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - anon_sym_CARET, + ACTIONS(626), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(618), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, + ACTIONS(622), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, + ACTIONS(502), 7, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14329] = 8, - ACTIONS(618), 1, + ACTIONS(504), 8, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [14341] = 3, + ACTIONS(628), 1, anon_sym_CARET, - ACTIONS(622), 2, + ACTIONS(450), 12, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(626), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(628), 2, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - ACTIONS(620), 3, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(448), 16, + anon_sym_RPAREN, + anon_sym_DQUOTE, + anon_sym_SQUOTE, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(624), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(482), 7, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(484), 8, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [14375] = 3, - ACTIONS(606), 1, + [14377] = 3, + ACTIONS(628), 1, anon_sym_CARET, - ACTIONS(588), 12, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15783,7 +15784,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, + ACTIONS(448), 16, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15800,14 +15801,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14411] = 4, - ACTIONS(606), 1, + [14413] = 4, + ACTIONS(628), 1, anon_sym_CARET, ACTIONS(630), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(588), 12, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15820,7 +15821,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 13, + ACTIONS(448), 13, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15834,8 +15835,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14449] = 5, - ACTIONS(606), 1, + [14451] = 5, + ACTIONS(628), 1, anon_sym_CARET, ACTIONS(632), 2, anon_sym_PLUS, @@ -15844,7 +15845,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(588), 10, + ACTIONS(450), 10, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15855,7 +15856,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 13, + ACTIONS(448), 13, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15869,8 +15870,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14489] = 7, - ACTIONS(606), 1, + [14491] = 7, + ACTIONS(628), 1, anon_sym_CARET, ACTIONS(632), 2, anon_sym_PLUS, @@ -15887,7 +15888,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(588), 8, + ACTIONS(450), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15896,7 +15897,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 9, + ACTIONS(448), 9, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15906,8 +15907,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14533] = 2, - ACTIONS(584), 12, + [14535] = 2, + ACTIONS(594), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15920,7 +15921,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(582), 17, + ACTIONS(592), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15938,8 +15939,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14567] = 2, - ACTIONS(576), 12, + [14569] = 2, + ACTIONS(582), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15952,7 +15953,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(574), 17, + ACTIONS(580), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -15970,8 +15971,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14601] = 2, - ACTIONS(488), 12, + [14603] = 2, + ACTIONS(570), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -15984,7 +15985,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(486), 17, + ACTIONS(568), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16002,8 +16003,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14635] = 2, - ACTIONS(568), 12, + [14637] = 2, + ACTIONS(550), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16016,7 +16017,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(566), 17, + ACTIONS(548), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16034,8 +16035,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14669] = 2, - ACTIONS(568), 12, + [14671] = 2, + ACTIONS(570), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16048,7 +16049,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(566), 17, + ACTIONS(568), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16066,7 +16067,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14703] = 8, + [14705] = 8, ACTIONS(608), 1, anon_sym_CARET, ACTIONS(612), 2, @@ -16075,7 +16076,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(616), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(642), 2, + ACTIONS(638), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, ACTIONS(610), 3, @@ -16087,7 +16088,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(640), 7, + ACTIONS(486), 7, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16095,7 +16096,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(638), 8, + ACTIONS(488), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16104,8 +16105,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [14749] = 8, - ACTIONS(606), 1, + [14751] = 8, + ACTIONS(628), 1, anon_sym_CARET, ACTIONS(632), 2, anon_sym_PLUS, @@ -16113,7 +16114,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(636), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(644), 2, + ACTIONS(640), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, ACTIONS(630), 3, @@ -16125,7 +16126,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(454), 7, + ACTIONS(486), 7, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16133,7 +16134,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(456), 8, + ACTIONS(488), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16142,8 +16143,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [14795] = 2, - ACTIONS(580), 12, + [14797] = 2, + ACTIONS(590), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16156,7 +16157,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(578), 17, + ACTIONS(588), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16174,8 +16175,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14829] = 2, - ACTIONS(600), 12, + [14831] = 2, + ACTIONS(590), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16188,7 +16189,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(598), 17, + ACTIONS(588), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16206,8 +16207,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14863] = 8, - ACTIONS(606), 1, + [14865] = 8, + ACTIONS(628), 1, anon_sym_CARET, ACTIONS(632), 2, anon_sym_PLUS, @@ -16215,7 +16216,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(636), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(644), 2, + ACTIONS(640), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, ACTIONS(630), 3, @@ -16227,7 +16228,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(470), 7, + ACTIONS(494), 7, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16235,7 +16236,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(472), 8, + ACTIONS(496), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16244,7 +16245,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [14909] = 8, + [14911] = 8, ACTIONS(608), 1, anon_sym_CARET, ACTIONS(612), 2, @@ -16253,7 +16254,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(616), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(642), 2, + ACTIONS(638), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, ACTIONS(610), 3, @@ -16265,7 +16266,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(454), 7, + ACTIONS(494), 7, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16273,7 +16274,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(456), 8, + ACTIONS(496), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16282,8 +16283,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [14955] = 2, - ACTIONS(480), 12, + [14957] = 2, + ACTIONS(500), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16296,7 +16297,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(478), 17, + ACTIONS(498), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16314,8 +16315,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [14989] = 8, - ACTIONS(606), 1, + [14991] = 8, + ACTIONS(628), 1, anon_sym_CARET, ACTIONS(632), 2, anon_sym_PLUS, @@ -16323,7 +16324,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(636), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(644), 2, + ACTIONS(640), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, ACTIONS(630), 3, @@ -16335,57 +16336,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(482), 7, - anon_sym_RPAREN, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - ACTIONS(484), 8, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [15035] = 2, - ACTIONS(488), 12, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(486), 17, + ACTIONS(502), 7, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15069] = 2, - ACTIONS(492), 12, + ACTIONS(504), 8, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [15037] = 2, + ACTIONS(508), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16398,7 +16367,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(490), 17, + ACTIONS(506), 17, anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16416,8 +16385,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15103] = 2, - ACTIONS(504), 12, + [15071] = 2, + ACTIONS(500), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16430,8 +16399,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(502), 17, - anon_sym_RPAREN, + ACTIONS(498), 17, + sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -16448,10 +16417,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15137] = 3, - ACTIONS(608), 1, - anon_sym_CARET, - ACTIONS(588), 12, + [15105] = 2, + ACTIONS(520), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16464,10 +16431,11 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, - sym_dedent, + ACTIONS(518), 17, + anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -16481,8 +16449,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15173] = 2, - ACTIONS(580), 12, + [15139] = 3, + ACTIONS(608), 1, + anon_sym_CARET, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16495,11 +16465,10 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(578), 17, + ACTIONS(448), 16, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, - anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -16513,7 +16482,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15207] = 8, + [15175] = 8, ACTIONS(608), 1, anon_sym_CARET, ACTIONS(612), 2, @@ -16522,7 +16491,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(616), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(642), 2, + ACTIONS(638), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, ACTIONS(610), 3, @@ -16534,7 +16503,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(470), 7, + ACTIONS(502), 7, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16542,7 +16511,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(472), 8, + ACTIONS(504), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16551,46 +16520,40 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [15253] = 8, - ACTIONS(618), 1, - anon_sym_CARET, - ACTIONS(622), 2, + [15221] = 2, + ACTIONS(594), 12, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(626), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(628), 2, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - ACTIONS(620), 3, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(592), 17, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(624), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(454), 7, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(456), 8, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [15299] = 2, - ACTIONS(480), 12, + [15255] = 2, + ACTIONS(508), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16603,7 +16566,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(478), 17, + ACTIONS(506), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16621,36 +16584,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15333] = 8, - ACTIONS(608), 1, + [15289] = 7, + ACTIONS(606), 1, anon_sym_CARET, - ACTIONS(612), 2, + ACTIONS(620), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(616), 2, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(642), 2, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - ACTIONS(610), 3, + ACTIONS(618), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(614), 4, + ACTIONS(622), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(482), 7, - sym_dedent, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - ACTIONS(484), 8, + ACTIONS(450), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16659,28 +16611,41 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [15379] = 2, - ACTIONS(584), 12, + ACTIONS(448), 9, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + [15333] = 5, + ACTIONS(606), 1, + anon_sym_CARET, + ACTIONS(620), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(618), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(450), 10, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, sym_negative_digits, sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(582), 17, + ACTIONS(448), 13, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -16691,8 +16656,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15413] = 2, - ACTIONS(596), 12, + [15373] = 4, + ACTIONS(606), 1, + anon_sym_CARET, + ACTIONS(618), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16705,14 +16676,10 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(594), 17, - sym_dedent, + ACTIONS(448), 13, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -16723,68 +16690,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15447] = 7, - ACTIONS(618), 1, - anon_sym_CARET, - ACTIONS(622), 2, + [15411] = 2, + ACTIONS(570), 12, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(626), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(620), 3, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(568), 17, + sym_dedent, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(624), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(588), 8, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(586), 9, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15491] = 5, - ACTIONS(618), 1, + [15445] = 3, + ACTIONS(606), 1, anon_sym_CARET, - ACTIONS(622), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(620), 3, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(588), 10, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, sym_negative_digits, sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 13, + ACTIONS(448), 16, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -16795,14 +16755,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15531] = 4, - ACTIONS(618), 1, - anon_sym_CARET, - ACTIONS(620), 3, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(588), 12, + [15481] = 2, + ACTIONS(512), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16815,10 +16769,14 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 13, + ACTIONS(510), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -16829,10 +16787,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15569] = 3, - ACTIONS(618), 1, - anon_sym_CARET, - ACTIONS(588), 12, + [15515] = 2, + ACTIONS(550), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16845,10 +16801,11 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, + ACTIONS(548), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -16862,10 +16819,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15605] = 3, - ACTIONS(618), 1, - anon_sym_CARET, - ACTIONS(588), 12, + [15549] = 2, + ACTIONS(546), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16878,10 +16833,11 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, + ACTIONS(544), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -16895,8 +16851,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15641] = 2, - ACTIONS(600), 12, + [15583] = 2, + ACTIONS(542), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16909,7 +16865,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(598), 17, + ACTIONS(540), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16927,8 +16883,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15675] = 2, - ACTIONS(596), 12, + [15617] = 2, + ACTIONS(516), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16941,8 +16897,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(594), 17, - ts_builtin_sym_end, + ACTIONS(514), 17, + sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -16959,8 +16915,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15709] = 2, - ACTIONS(572), 12, + [15651] = 2, + ACTIONS(446), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -16973,7 +16929,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(570), 17, + ACTIONS(444), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -16991,8 +16947,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15743] = 2, - ACTIONS(542), 12, + [15685] = 2, + ACTIONS(520), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17005,8 +16961,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(540), 17, - ts_builtin_sym_end, + ACTIONS(518), 17, + sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -17023,8 +16979,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15777] = 2, - ACTIONS(492), 12, + [15719] = 2, + ACTIONS(468), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17037,8 +16993,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(490), 17, - sym_dedent, + ACTIONS(466), 17, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -17055,8 +17011,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15811] = 2, - ACTIONS(500), 12, + [15753] = 2, + ACTIONS(600), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17069,7 +17025,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(498), 17, + ACTIONS(598), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17087,8 +17043,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15845] = 2, - ACTIONS(440), 12, + [15787] = 2, + ACTIONS(574), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17101,7 +17057,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(438), 17, + ACTIONS(572), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17119,8 +17075,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15879] = 2, - ACTIONS(504), 12, + [15821] = 2, + ACTIONS(472), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17133,8 +17089,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(502), 17, - sym_dedent, + ACTIONS(470), 17, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -17151,8 +17107,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15913] = 2, - ACTIONS(518), 12, + [15855] = 2, + ACTIONS(492), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17165,7 +17121,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(516), 17, + ACTIONS(490), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17183,8 +17139,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15947] = 2, - ACTIONS(496), 12, + [15889] = 2, + ACTIONS(578), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17197,7 +17153,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(494), 17, + ACTIONS(576), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17215,8 +17171,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [15981] = 2, - ACTIONS(522), 12, + [15923] = 2, + ACTIONS(526), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17229,7 +17185,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(520), 17, + ACTIONS(524), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17247,8 +17203,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16015] = 2, - ACTIONS(476), 12, + [15957] = 2, + ACTIONS(530), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17261,7 +17217,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(474), 17, + ACTIONS(528), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17279,8 +17235,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16049] = 2, - ACTIONS(572), 12, + [15991] = 2, + ACTIONS(546), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17293,7 +17249,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(570), 17, + ACTIONS(544), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17311,8 +17267,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16083] = 2, - ACTIONS(564), 12, + [16025] = 2, + ACTIONS(566), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17325,7 +17281,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(562), 17, + ACTIONS(564), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17343,8 +17299,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16117] = 2, - ACTIONS(560), 12, + [16059] = 8, + ACTIONS(608), 1, + anon_sym_CARET, + ACTIONS(612), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(616), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(638), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(610), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(614), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(644), 7, + sym_dedent, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + ACTIONS(642), 8, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [16105] = 2, + ACTIONS(534), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17357,7 +17351,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(558), 17, + ACTIONS(532), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17375,8 +17369,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16151] = 2, - ACTIONS(580), 12, + [16139] = 8, + ACTIONS(606), 1, + anon_sym_CARET, + ACTIONS(620), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(624), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(626), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(618), 3, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(622), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(486), 7, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + ACTIONS(488), 8, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [16185] = 2, + ACTIONS(538), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17389,7 +17421,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(578), 17, + ACTIONS(536), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17407,8 +17439,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16185] = 2, - ACTIONS(450), 12, + [16219] = 2, + ACTIONS(590), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17421,7 +17453,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(448), 17, + ACTIONS(588), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17439,36 +17471,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16219] = 8, - ACTIONS(618), 1, + [16253] = 8, + ACTIONS(628), 1, anon_sym_CARET, - ACTIONS(622), 2, + ACTIONS(632), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(626), 2, + ACTIONS(636), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(628), 2, + ACTIONS(640), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(620), 3, + ACTIONS(630), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(624), 4, + ACTIONS(634), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(470), 7, - ts_builtin_sym_end, + ACTIONS(648), 7, + anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(472), 8, + ACTIONS(646), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17477,36 +17509,36 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [16265] = 8, + [16299] = 8, ACTIONS(606), 1, anon_sym_CARET, - ACTIONS(632), 2, + ACTIONS(620), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(636), 2, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(644), 2, + ACTIONS(626), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(630), 3, + ACTIONS(618), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(634), 4, + ACTIONS(622), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(648), 7, - anon_sym_RPAREN, + ACTIONS(494), 7, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(646), 8, + ACTIONS(496), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17515,8 +17547,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - [16311] = 2, - ACTIONS(504), 12, + [16345] = 2, + ACTIONS(554), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17529,7 +17561,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(502), 17, + ACTIONS(552), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17547,8 +17579,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16345] = 2, - ACTIONS(530), 12, + [16379] = 2, + ACTIONS(516), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17561,8 +17593,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(528), 17, - ts_builtin_sym_end, + ACTIONS(514), 17, + anon_sym_RPAREN, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -17579,8 +17611,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16379] = 2, - ACTIONS(440), 12, + [16413] = 2, + ACTIONS(520), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17593,8 +17625,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(438), 17, - sym_dedent, + ACTIONS(518), 17, + ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -17611,8 +17643,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16413] = 2, - ACTIONS(492), 12, + [16447] = 2, + ACTIONS(558), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17625,7 +17657,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(490), 17, + ACTIONS(556), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17643,8 +17675,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16447] = 2, - ACTIONS(534), 12, + [16481] = 2, + ACTIONS(446), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17657,8 +17689,8 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(532), 17, - ts_builtin_sym_end, + ACTIONS(444), 17, + sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_CARET, @@ -17675,46 +17707,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16481] = 8, - ACTIONS(608), 1, - anon_sym_CARET, - ACTIONS(612), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(616), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(642), 2, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - ACTIONS(610), 3, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(614), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(652), 7, - sym_dedent, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - ACTIONS(650), 8, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [16527] = 2, - ACTIONS(538), 12, + [16515] = 2, + ACTIONS(516), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17727,7 +17721,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(536), 17, + ACTIONS(514), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17745,8 +17739,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16561] = 2, - ACTIONS(500), 12, + [16549] = 2, + ACTIONS(574), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17759,7 +17753,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(498), 17, + ACTIONS(572), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17777,8 +17771,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16595] = 2, - ACTIONS(564), 12, + [16583] = 2, + ACTIONS(566), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17791,7 +17785,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(562), 17, + ACTIONS(564), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17809,8 +17803,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16629] = 2, - ACTIONS(426), 12, + [16617] = 2, + ACTIONS(432), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17823,7 +17817,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(424), 17, + ACTIONS(430), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17841,8 +17835,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16663] = 2, - ACTIONS(556), 12, + [16651] = 2, + ACTIONS(562), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17855,7 +17849,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(554), 17, + ACTIONS(560), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17873,8 +17867,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16697] = 2, - ACTIONS(552), 12, + [16685] = 2, + ACTIONS(558), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17887,7 +17881,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(550), 17, + ACTIONS(556), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17905,8 +17899,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16731] = 2, - ACTIONS(548), 12, + [16719] = 2, + ACTIONS(554), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -17919,7 +17913,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(546), 17, + ACTIONS(552), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -17937,7 +17931,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16765] = 2, + [16753] = 2, ACTIONS(538), 12, anon_sym_let, anon_sym_LPAREN, @@ -17969,7 +17963,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16799] = 2, + [16787] = 2, ACTIONS(534), 12, anon_sym_let, anon_sym_LPAREN, @@ -18001,7 +17995,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16833] = 2, + [16821] = 2, ACTIONS(530), 12, anon_sym_let, anon_sym_LPAREN, @@ -18033,8 +18027,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16867] = 2, - ACTIONS(450), 12, + [16855] = 2, + ACTIONS(526), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18047,7 +18041,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(448), 17, + ACTIONS(524), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18065,8 +18059,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16901] = 2, - ACTIONS(548), 12, + [16889] = 2, + ACTIONS(562), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18079,7 +18073,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(546), 17, + ACTIONS(560), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18097,74 +18091,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16935] = 2, - ACTIONS(552), 12, - anon_sym_let, - anon_sym_LPAREN, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, + [16923] = 8, + ACTIONS(608), 1, + anon_sym_CARET, + ACTIONS(612), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(616), 2, anon_sym_LT, anon_sym_GT, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - ACTIONS(550), 17, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - anon_sym_CARET, + ACTIONS(638), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(610), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, + ACTIONS(614), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, + ACTIONS(652), 7, + sym_dedent, + anon_sym_DQUOTE, + anon_sym_SQUOTE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [16969] = 2, - ACTIONS(556), 12, + ACTIONS(650), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, aux_sym_bool_literal_token2, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, sym_negative_digits, sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(554), 17, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - [17003] = 3, + [16969] = 3, ACTIONS(608), 1, anon_sym_CARET, - ACTIONS(588), 12, + ACTIONS(450), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18177,7 +18145,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(586), 16, + ACTIONS(448), 16, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18194,23 +18162,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_Dict, sym_unit, - [17039] = 8, - ACTIONS(618), 1, + [17005] = 8, + ACTIONS(606), 1, anon_sym_CARET, - ACTIONS(622), 2, + ACTIONS(620), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(626), 2, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(628), 2, + ACTIONS(626), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(620), 3, + ACTIONS(618), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(624), 4, + ACTIONS(622), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -18232,8 +18200,40 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, + [17051] = 2, + ACTIONS(500), 12, + anon_sym_let, + anon_sym_LPAREN, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + ACTIONS(498), 17, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + anon_sym_CARET, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, [17085] = 2, - ACTIONS(560), 12, + ACTIONS(578), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18246,7 +18246,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(558), 17, + ACTIONS(576), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18265,7 +18265,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [17119] = 2, - ACTIONS(476), 12, + ACTIONS(492), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18278,7 +18278,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(474), 17, + ACTIONS(490), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18297,7 +18297,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [17153] = 2, - ACTIONS(522), 12, + ACTIONS(472), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18310,7 +18310,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(520), 17, + ACTIONS(470), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18329,7 +18329,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [17187] = 2, - ACTIONS(496), 12, + ACTIONS(600), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18342,7 +18342,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(494), 17, + ACTIONS(598), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18361,7 +18361,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [17221] = 2, - ACTIONS(518), 12, + ACTIONS(468), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18374,7 +18374,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(516), 17, + ACTIONS(466), 17, sym_dedent, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18393,7 +18393,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [17255] = 2, - ACTIONS(480), 12, + ACTIONS(508), 12, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -18406,7 +18406,7 @@ static const uint16_t ts_small_parse_table[] = { sym_positive_digits, anon_sym_if, aux_sym_variable_identifier_token1, - ACTIONS(478), 17, + ACTIONS(506), 17, ts_builtin_sym_end, anon_sym_DQUOTE, anon_sym_SQUOTE, @@ -18457,11 +18457,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [17323] = 2, - ACTIONS(440), 3, + ACTIONS(446), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(438), 19, + ACTIONS(444), 19, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18484,11 +18484,11 @@ static const uint16_t ts_small_parse_table[] = { [17350] = 3, ACTIONS(654), 1, anon_sym_else, - ACTIONS(434), 3, + ACTIONS(426), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(432), 18, + ACTIONS(424), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18510,11 +18510,11 @@ static const uint16_t ts_small_parse_table[] = { [17379] = 3, ACTIONS(656), 1, anon_sym_else, - ACTIONS(444), 3, + ACTIONS(440), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(442), 18, + ACTIONS(438), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18559,11 +18559,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_Dict, sym_unit, [17436] = 2, - ACTIONS(450), 3, + ACTIONS(492), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(448), 18, + ACTIONS(490), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18583,11 +18583,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17462] = 2, - ACTIONS(492), 3, + ACTIONS(516), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(490), 18, + ACTIONS(514), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18607,11 +18607,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17488] = 2, - ACTIONS(500), 3, + ACTIONS(574), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(498), 18, + ACTIONS(572), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18631,11 +18631,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17514] = 2, - ACTIONS(564), 3, + ACTIONS(566), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(562), 18, + ACTIONS(564), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18655,11 +18655,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17540] = 2, - ACTIONS(426), 3, + ACTIONS(432), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(424), 18, + ACTIONS(430), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18679,11 +18679,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17566] = 2, - ACTIONS(556), 3, + ACTIONS(562), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(554), 18, + ACTIONS(560), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18703,11 +18703,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17592] = 2, - ACTIONS(552), 3, + ACTIONS(558), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(550), 18, + ACTIONS(556), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18727,11 +18727,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17618] = 2, - ACTIONS(548), 3, + ACTIONS(554), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(546), 18, + ACTIONS(552), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18775,11 +18775,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [17670] = 2, - ACTIONS(488), 3, + ACTIONS(534), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(486), 18, + ACTIONS(532), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18798,42 +18798,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17696] = 8, - ACTIONS(484), 1, + [17696] = 2, + ACTIONS(530), 3, anon_sym_EQ, - ACTIONS(664), 1, - anon_sym_CARET, - ACTIONS(668), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(672), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(674), 2, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - ACTIONS(666), 3, + ACTIONS(528), 18, + anon_sym_RPAREN, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(670), 4, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(482), 6, - anon_sym_RPAREN, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17734] = 2, - ACTIONS(480), 3, + [17722] = 2, + ACTIONS(508), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(478), 18, + ACTIONS(506), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18852,8 +18846,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17760] = 8, - ACTIONS(472), 1, + [17748] = 8, + ACTIONS(504), 1, anon_sym_EQ, ACTIONS(664), 1, anon_sym_CARET, @@ -18875,19 +18869,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(470), 6, + ACTIONS(502), 6, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17798] = 2, - ACTIONS(580), 3, + [17786] = 2, + ACTIONS(500), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(578), 18, + ACTIONS(498), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18906,8 +18900,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17824] = 8, - ACTIONS(456), 1, + [17812] = 8, + ACTIONS(496), 1, anon_sym_EQ, ACTIONS(664), 1, anon_sym_CARET, @@ -18929,19 +18923,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(454), 6, + ACTIONS(494), 6, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17862] = 2, - ACTIONS(568), 3, + [17850] = 2, + ACTIONS(590), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(566), 18, + ACTIONS(588), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -18960,36 +18954,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17888] = 2, - ACTIONS(576), 3, + [17876] = 8, + ACTIONS(488), 1, anon_sym_EQ, + ACTIONS(664), 1, + anon_sym_CARET, + ACTIONS(668), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(672), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(574), 18, - anon_sym_RPAREN, - anon_sym_CARET, + ACTIONS(674), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(666), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - anon_sym_PLUS, - anon_sym_DASH, + ACTIONS(670), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, + ACTIONS(486), 6, + anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, [17914] = 2, - ACTIONS(584), 3, + ACTIONS(570), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(582), 18, + ACTIONS(568), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19008,28 +19008,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17940] = 7, - ACTIONS(588), 1, + [17940] = 2, + ACTIONS(582), 3, anon_sym_EQ, - ACTIONS(664), 1, - anon_sym_CARET, - ACTIONS(668), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(672), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(666), 3, + ACTIONS(580), 18, + anon_sym_RPAREN, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(670), 4, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(586), 8, - anon_sym_RPAREN, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_RBRACK, @@ -19037,22 +19032,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [17976] = 5, - ACTIONS(664), 1, - anon_sym_CARET, - ACTIONS(668), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(588), 3, + [17966] = 2, + ACTIONS(594), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(666), 3, + ACTIONS(592), 18, + anon_sym_RPAREN, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(586), 12, - anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -19064,25 +19056,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [18008] = 4, + [17992] = 7, + ACTIONS(450), 1, + anon_sym_EQ, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(588), 3, - anon_sym_EQ, + ACTIONS(668), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(672), 2, anon_sym_LT, anon_sym_GT, ACTIONS(666), 3, anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(586), 14, - anon_sym_RPAREN, - anon_sym_PLUS, - anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(670), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + ACTIONS(448), 8, + anon_sym_RPAREN, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, anon_sym_RBRACK, @@ -19090,20 +19085,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [18038] = 3, + [18028] = 5, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(588), 3, + ACTIONS(668), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(450), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(586), 17, - anon_sym_RPAREN, + ACTIONS(666), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - anon_sym_PLUS, - anon_sym_DASH, + ACTIONS(448), 12, + anon_sym_RPAREN, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -19115,18 +19112,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [18066] = 3, + [18060] = 4, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(588), 3, + ACTIONS(450), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(586), 17, - anon_sym_RPAREN, + ACTIONS(666), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, + ACTIONS(448), 14, + anon_sym_RPAREN, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, @@ -19140,14 +19138,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [18094] = 2, - ACTIONS(600), 3, + [18090] = 3, + ACTIONS(664), 1, + anon_sym_CARET, + ACTIONS(450), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(598), 18, + ACTIONS(448), 17, anon_sym_RPAREN, - anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -19164,14 +19163,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_then, - [18120] = 2, - ACTIONS(596), 3, + [18118] = 3, + ACTIONS(664), 1, + anon_sym_CARET, + ACTIONS(450), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(594), 18, + ACTIONS(448), 17, anon_sym_RPAREN, - anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -19189,11 +19189,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18146] = 2, - ACTIONS(572), 3, + ACTIONS(512), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(570), 18, + ACTIONS(510), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19213,11 +19213,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18172] = 2, - ACTIONS(542), 3, + ACTIONS(550), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(540), 18, + ACTIONS(548), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19237,11 +19237,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18198] = 2, - ACTIONS(518), 3, + ACTIONS(546), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(516), 18, + ACTIONS(544), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19261,11 +19261,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18224] = 2, - ACTIONS(496), 3, + ACTIONS(542), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(494), 18, + ACTIONS(540), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19285,11 +19285,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18250] = 2, - ACTIONS(522), 3, + ACTIONS(468), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(520), 18, + ACTIONS(466), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19309,11 +19309,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18276] = 2, - ACTIONS(476), 3, + ACTIONS(600), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(474), 18, + ACTIONS(598), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19333,11 +19333,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18302] = 2, - ACTIONS(560), 3, + ACTIONS(472), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(558), 18, + ACTIONS(470), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19357,11 +19357,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18328] = 2, - ACTIONS(504), 3, + ACTIONS(520), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(502), 18, + ACTIONS(518), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19381,11 +19381,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18354] = 2, - ACTIONS(530), 3, + ACTIONS(578), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(528), 18, + ACTIONS(576), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19405,11 +19405,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_then, [18380] = 2, - ACTIONS(534), 3, + ACTIONS(526), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(532), 18, + ACTIONS(524), 18, anon_sym_RPAREN, anon_sym_CARET, anon_sym_STAR, @@ -19646,7 +19646,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, STATE(486), 1, aux_sym_tuple_literal_the_rest_repeat1, - STATE(568), 1, + STATE(550), 1, sym_tuple_literal_the_rest, ACTIONS(668), 2, anon_sym_PLUS, @@ -19675,7 +19675,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(486), 1, aux_sym_tuple_literal_the_rest_repeat1, - STATE(514), 1, + STATE(532), 1, sym_tuple_literal_the_rest, ACTIONS(668), 2, anon_sym_PLUS, @@ -19704,7 +19704,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(486), 1, aux_sym_tuple_literal_the_rest_repeat1, - STATE(566), 1, + STATE(520), 1, sym_tuple_literal_the_rest, ACTIONS(668), 2, anon_sym_PLUS, @@ -19733,7 +19733,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(486), 1, aux_sym_tuple_literal_the_rest_repeat1, - STATE(520), 1, + STATE(568), 1, sym_tuple_literal_the_rest, ACTIONS(668), 2, anon_sym_PLUS, @@ -19762,7 +19762,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(486), 1, aux_sym_tuple_literal_the_rest_repeat1, - STATE(532), 1, + STATE(566), 1, sym_tuple_literal_the_rest, ACTIONS(668), 2, anon_sym_PLUS, @@ -19791,7 +19791,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(486), 1, aux_sym_tuple_literal_the_rest_repeat1, - STATE(550), 1, + STATE(514), 1, sym_tuple_literal_the_rest, ACTIONS(668), 2, anon_sym_PLUS, @@ -19863,9 +19863,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [18939] = 7, + [18939] = 8, ACTIONS(664), 1, anon_sym_CARET, + ACTIONS(740), 1, + anon_sym_RPAREN, + ACTIONS(742), 1, + anon_sym_COMMA, ACTIONS(668), 2, anon_sym_PLUS, anon_sym_DASH, @@ -19875,9 +19879,6 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(674), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(740), 2, - anon_sym_RPAREN, - anon_sym_COMMA, ACTIONS(666), 3, anon_sym_STAR, anon_sym_SLASH, @@ -19887,26 +19888,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [18970] = 2, - ACTIONS(438), 1, - anon_sym_LF, - ACTIONS(440), 15, - anon_sym_CARET, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - anon_sym_else, - [18991] = 7, + [18972] = 7, ACTIONS(664), 1, anon_sym_CARET, ACTIONS(668), 2, @@ -19918,9 +19900,9 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(674), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(742), 2, - anon_sym_SEMI, - anon_sym_RBRACE, + ACTIONS(744), 2, + anon_sym_RPAREN, + anon_sym_COMMA, ACTIONS(666), 3, anon_sym_STAR, anon_sym_SLASH, @@ -19930,12 +19912,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [19022] = 8, + [19003] = 8, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(744), 1, - anon_sym_RPAREN, ACTIONS(746), 1, + anon_sym_RPAREN, + ACTIONS(748), 1, anon_sym_COMMA, ACTIONS(668), 2, anon_sym_PLUS, @@ -19955,13 +19937,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [19055] = 8, + [19036] = 7, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(748), 1, - anon_sym_RPAREN, - ACTIONS(750), 1, - anon_sym_COMMA, ACTIONS(668), 2, anon_sym_PLUS, anon_sym_DASH, @@ -19971,6 +19949,9 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(674), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, + ACTIONS(750), 2, + anon_sym_SEMI, + anon_sym_RBRACE, ACTIONS(666), 3, anon_sym_STAR, anon_sym_SLASH, @@ -19980,12 +19961,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [19088] = 3, - ACTIONS(442), 1, + [19067] = 2, + ACTIONS(444), 1, anon_sym_LF, - ACTIONS(752), 1, - anon_sym_else, - ACTIONS(444), 14, + ACTIONS(446), 15, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20000,51 +19979,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - [19111] = 2, - ACTIONS(754), 7, - ts_builtin_sym_end, - anon_sym_DQUOTE, - anon_sym_SQUOTE, - sym_float_literal, - anon_sym_LBRACK, - anon_sym_Dict, - sym_unit, - ACTIONS(756), 9, - anon_sym_let, - anon_sym_LPAREN, - anon_sym_type, - aux_sym_bool_literal_token1, - aux_sym_bool_literal_token2, - sym_negative_digits, - sym_positive_digits, - anon_sym_if, - aux_sym_variable_identifier_token1, - [19132] = 3, - ACTIONS(432), 1, - anon_sym_LF, - ACTIONS(758), 1, anon_sym_else, - ACTIONS(434), 14, + [19088] = 7, + ACTIONS(664), 1, anon_sym_CARET, + ACTIONS(668), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(672), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(674), 2, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, + ACTIONS(752), 2, + anon_sym_RBRACK, + anon_sym_SEMI, + ACTIONS(666), 3, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - anon_sym_PLUS, - anon_sym_DASH, + ACTIONS(670), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - [19155] = 8, + [19119] = 8, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(760), 1, + ACTIONS(754), 1, anon_sym_RPAREN, - ACTIONS(762), 1, + ACTIONS(756), 1, anon_sym_COMMA, ACTIONS(668), 2, anon_sym_PLUS, @@ -20064,12 +20029,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [19188] = 8, + [19152] = 8, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(764), 1, + ACTIONS(758), 1, anon_sym_RPAREN, - ACTIONS(766), 1, + ACTIONS(760), 1, anon_sym_COMMA, ACTIONS(668), 2, anon_sym_PLUS, @@ -20089,30 +20054,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [19221] = 7, - ACTIONS(664), 1, + [19185] = 3, + ACTIONS(438), 1, + anon_sym_LF, + ACTIONS(762), 1, + anon_sym_else, + ACTIONS(440), 14, anon_sym_CARET, - ACTIONS(668), 2, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(672), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, anon_sym_LT, + anon_sym_LT_EQ, anon_sym_GT, - ACTIONS(674), 2, + anon_sym_GT_EQ, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, - ACTIONS(768), 2, - anon_sym_RBRACK, - anon_sym_SEMI, - ACTIONS(666), 3, + [19208] = 2, + ACTIONS(764), 7, + ts_builtin_sym_end, + anon_sym_DQUOTE, + anon_sym_SQUOTE, + sym_float_literal, + anon_sym_LBRACK, + anon_sym_Dict, + sym_unit, + ACTIONS(766), 9, + anon_sym_let, + anon_sym_LPAREN, + anon_sym_type, + aux_sym_bool_literal_token1, + aux_sym_bool_literal_token2, + sym_negative_digits, + sym_positive_digits, + anon_sym_if, + aux_sym_variable_identifier_token1, + [19229] = 3, + ACTIONS(424), 1, + anon_sym_LF, + ACTIONS(768), 1, + anon_sym_else, + ACTIONS(426), 14, + anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(670), 4, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, [19252] = 8, ACTIONS(664), 1, anon_sym_CARET, @@ -20157,9 +20157,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19305] = 2, - ACTIONS(448), 1, + ACTIONS(524), 1, anon_sym_LF, - ACTIONS(450), 14, + ACTIONS(526), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20175,9 +20175,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19325] = 2, - ACTIONS(502), 1, + ACTIONS(518), 1, anon_sym_LF, - ACTIONS(504), 14, + ACTIONS(520), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20193,9 +20193,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19345] = 2, - ACTIONS(490), 1, + ACTIONS(514), 1, anon_sym_LF, - ACTIONS(492), 14, + ACTIONS(516), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20211,9 +20211,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19365] = 2, - ACTIONS(486), 1, + ACTIONS(506), 1, anon_sym_LF, - ACTIONS(488), 14, + ACTIONS(508), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20229,7 +20229,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19385] = 6, - ACTIONS(482), 1, + ACTIONS(502), 1, anon_sym_LF, ACTIONS(774), 1, anon_sym_CARET, @@ -20251,9 +20251,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [19413] = 2, - ACTIONS(478), 1, + ACTIONS(498), 1, anon_sym_LF, - ACTIONS(480), 14, + ACTIONS(500), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20269,7 +20269,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19433] = 6, - ACTIONS(470), 1, + ACTIONS(494), 1, anon_sym_LF, ACTIONS(774), 1, anon_sym_CARET, @@ -20291,9 +20291,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [19461] = 2, - ACTIONS(578), 1, + ACTIONS(588), 1, anon_sym_LF, - ACTIONS(580), 14, + ACTIONS(590), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20309,7 +20309,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19481] = 6, - ACTIONS(454), 1, + ACTIONS(486), 1, anon_sym_LF, ACTIONS(774), 1, anon_sym_CARET, @@ -20331,9 +20331,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [19509] = 2, - ACTIONS(566), 1, + ACTIONS(568), 1, anon_sym_LF, - ACTIONS(568), 14, + ACTIONS(570), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20349,9 +20349,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19529] = 2, - ACTIONS(574), 1, + ACTIONS(580), 1, anon_sym_LF, - ACTIONS(576), 14, + ACTIONS(582), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20367,9 +20367,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19549] = 2, - ACTIONS(582), 1, + ACTIONS(592), 1, anon_sym_LF, - ACTIONS(584), 14, + ACTIONS(594), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20385,11 +20385,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19569] = 6, - ACTIONS(586), 1, + ACTIONS(448), 1, anon_sym_LF, ACTIONS(774), 1, anon_sym_CARET, - ACTIONS(588), 2, + ACTIONS(450), 2, anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, ACTIONS(778), 2, @@ -20407,7 +20407,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [19597] = 5, - ACTIONS(586), 1, + ACTIONS(448), 1, anon_sym_LF, ACTIONS(774), 1, anon_sym_CARET, @@ -20418,7 +20418,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(588), 8, + ACTIONS(450), 8, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -20428,7 +20428,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [19623] = 4, - ACTIONS(586), 1, + ACTIONS(448), 1, anon_sym_LF, ACTIONS(774), 1, anon_sym_CARET, @@ -20436,7 +20436,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(588), 10, + ACTIONS(450), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, @@ -20533,29 +20533,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [19755] = 3, - ACTIONS(586), 1, - anon_sym_LF, - ACTIONS(774), 1, - anon_sym_CARET, - ACTIONS(588), 13, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_AMP_AMP, - anon_sym_PIPE_PIPE, - [19777] = 7, + [19755] = 7, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(770), 1, + ACTIONS(736), 1, anon_sym_RPAREN, ACTIONS(668), 2, anon_sym_PLUS, @@ -20575,7 +20556,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [19807] = 6, + [19785] = 6, ACTIONS(774), 1, anon_sym_CARET, ACTIONS(790), 1, @@ -20597,6 +20578,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + [19813] = 3, + ACTIONS(448), 1, + anon_sym_LF, + ACTIONS(774), 1, + anon_sym_CARET, + ACTIONS(450), 13, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_AMP_AMP, + anon_sym_PIPE_PIPE, [19835] = 7, ACTIONS(664), 1, anon_sym_CARET, @@ -20666,11 +20666,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [19923] = 3, - ACTIONS(586), 1, + ACTIONS(448), 1, anon_sym_LF, ACTIONS(774), 1, anon_sym_CARET, - ACTIONS(588), 13, + ACTIONS(450), 13, anon_sym_STAR, anon_sym_SLASH, anon_sym_PERCENT, @@ -20708,9 +20708,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [19975] = 2, - ACTIONS(598), 1, + ACTIONS(510), 1, anon_sym_LF, - ACTIONS(600), 14, + ACTIONS(512), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20728,7 +20728,7 @@ static const uint16_t ts_small_parse_table[] = { [19995] = 7, ACTIONS(664), 1, anon_sym_CARET, - ACTIONS(748), 1, + ACTIONS(770), 1, anon_sym_RPAREN, ACTIONS(668), 2, anon_sym_PLUS, @@ -20749,9 +20749,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [20025] = 2, - ACTIONS(594), 1, + ACTIONS(548), 1, anon_sym_LF, - ACTIONS(596), 14, + ACTIONS(550), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20767,9 +20767,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [20045] = 2, - ACTIONS(570), 1, + ACTIONS(544), 1, anon_sym_LF, - ACTIONS(572), 14, + ACTIONS(546), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20785,9 +20785,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [20065] = 2, - ACTIONS(516), 1, + ACTIONS(466), 1, anon_sym_LF, - ACTIONS(518), 14, + ACTIONS(468), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20803,9 +20803,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [20085] = 2, - ACTIONS(494), 1, + ACTIONS(598), 1, anon_sym_LF, - ACTIONS(496), 14, + ACTIONS(600), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20866,9 +20866,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [20163] = 2, - ACTIONS(520), 1, + ACTIONS(470), 1, anon_sym_LF, - ACTIONS(522), 14, + ACTIONS(472), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20907,9 +20907,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [20213] = 2, - ACTIONS(474), 1, + ACTIONS(490), 1, anon_sym_LF, - ACTIONS(476), 14, + ACTIONS(492), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20925,9 +20925,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [20233] = 2, - ACTIONS(562), 1, + ACTIONS(564), 1, anon_sym_LF, - ACTIONS(564), 14, + ACTIONS(566), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20943,9 +20943,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [20253] = 2, - ACTIONS(424), 1, + ACTIONS(430), 1, anon_sym_LF, - ACTIONS(426), 14, + ACTIONS(432), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -20984,9 +20984,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [20303] = 2, - ACTIONS(558), 1, + ACTIONS(576), 1, anon_sym_LF, - ACTIONS(560), 14, + ACTIONS(578), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -21024,9 +21024,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [20351] = 2, - ACTIONS(554), 1, + ACTIONS(560), 1, anon_sym_LF, - ACTIONS(556), 14, + ACTIONS(562), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -21087,9 +21087,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [20429] = 2, - ACTIONS(498), 1, + ACTIONS(572), 1, anon_sym_LF, - ACTIONS(500), 14, + ACTIONS(574), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -21187,9 +21187,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [20549] = 2, - ACTIONS(546), 1, + ACTIONS(552), 1, anon_sym_LF, - ACTIONS(548), 14, + ACTIONS(554), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -21205,9 +21205,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_PIPE_PIPE, [20569] = 2, - ACTIONS(550), 1, + ACTIONS(556), 1, anon_sym_LF, - ACTIONS(552), 14, + ACTIONS(558), 14, anon_sym_CARET, anon_sym_STAR, anon_sym_SLASH, @@ -21257,14 +21257,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, aux_sym_variable_identifier_token1, [20627] = 2, - ACTIONS(430), 6, + ACTIONS(436), 6, anon_sym_DQUOTE, anon_sym_SQUOTE, sym_float_literal, anon_sym_LBRACK, anon_sym_Dict, sym_unit, - ACTIONS(428), 8, + ACTIONS(434), 8, anon_sym_let, anon_sym_LPAREN, aux_sym_bool_literal_token1, @@ -21552,7 +21552,7 @@ static const uint16_t ts_small_parse_table[] = { [21030] = 4, ACTIONS(982), 1, aux_sym_type_identifier_token1, - STATE(366), 1, + STATE(367), 1, sym_type_identifier, STATE(476), 1, aux_sym_qualified_fn_name_repeat1, @@ -21638,7 +21638,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(1026), 1, sym_indent, - STATE(160), 1, + STATE(211), 1, sym_paren_expression, [21159] = 3, ACTIONS(1028), 1, @@ -21684,7 +21684,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(1042), 1, sym_indent, - STATE(326), 1, + STATE(325), 1, sym_paren_expression, [21223] = 3, ACTIONS(1016), 1, @@ -21711,7 +21711,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(1053), 1, sym_indent, - STATE(385), 1, + STATE(390), 1, sym_paren_expression, [21261] = 2, STATE(557), 1, @@ -21724,7 +21724,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(1057), 1, sym_indent, - STATE(207), 1, + STATE(203), 1, sym_paren_expression, [21279] = 3, ACTIONS(1059), 1, @@ -21744,7 +21744,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(1066), 1, sym_indent, - STATE(158), 1, + STATE(154), 1, sym_paren_expression, [21307] = 2, ACTIONS(1068), 1, @@ -22133,72 +22133,72 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(152)] = 10877, [SMALL_STATE(153)] = 10946, [SMALL_STATE(154)] = 11015, - [SMALL_STATE(155)] = 11051, - [SMALL_STATE(156)] = 11091, + [SMALL_STATE(155)] = 11053, + [SMALL_STATE(156)] = 11089, [SMALL_STATE(157)] = 11129, - [SMALL_STATE(158)] = 11165, + [SMALL_STATE(158)] = 11167, [SMALL_STATE(159)] = 11203, - [SMALL_STATE(160)] = 11238, - [SMALL_STATE(161)] = 11275, - [SMALL_STATE(162)] = 11310, - [SMALL_STATE(163)] = 11357, - [SMALL_STATE(164)] = 11404, - [SMALL_STATE(165)] = 11439, - [SMALL_STATE(166)] = 11474, - [SMALL_STATE(167)] = 11521, - [SMALL_STATE(168)] = 11556, - [SMALL_STATE(169)] = 11591, - [SMALL_STATE(170)] = 11626, - [SMALL_STATE(171)] = 11661, - [SMALL_STATE(172)] = 11696, - [SMALL_STATE(173)] = 11731, - [SMALL_STATE(174)] = 11784, - [SMALL_STATE(175)] = 11819, - [SMALL_STATE(176)] = 11854, - [SMALL_STATE(177)] = 11901, - [SMALL_STATE(178)] = 11936, - [SMALL_STATE(179)] = 11971, - [SMALL_STATE(180)] = 12006, - [SMALL_STATE(181)] = 12041, - [SMALL_STATE(182)] = 12076, - [SMALL_STATE(183)] = 12113, - [SMALL_STATE(184)] = 12166, - [SMALL_STATE(185)] = 12201, - [SMALL_STATE(186)] = 12236, - [SMALL_STATE(187)] = 12271, - [SMALL_STATE(188)] = 12306, - [SMALL_STATE(189)] = 12341, - [SMALL_STATE(190)] = 12376, - [SMALL_STATE(191)] = 12411, - [SMALL_STATE(192)] = 12446, - [SMALL_STATE(193)] = 12481, - [SMALL_STATE(194)] = 12534, - [SMALL_STATE(195)] = 12587, - [SMALL_STATE(196)] = 12640, - [SMALL_STATE(197)] = 12675, - [SMALL_STATE(198)] = 12710, - [SMALL_STATE(199)] = 12745, - [SMALL_STATE(200)] = 12790, - [SMALL_STATE(201)] = 12827, - [SMALL_STATE(202)] = 12868, - [SMALL_STATE(203)] = 12905, - [SMALL_STATE(204)] = 12944, - [SMALL_STATE(205)] = 12981, - [SMALL_STATE(206)] = 13016, - [SMALL_STATE(207)] = 13051, - [SMALL_STATE(208)] = 13088, - [SMALL_STATE(209)] = 13125, - [SMALL_STATE(210)] = 13178, - [SMALL_STATE(211)] = 13215, - [SMALL_STATE(212)] = 13268, + [SMALL_STATE(160)] = 11242, + [SMALL_STATE(161)] = 11295, + [SMALL_STATE(162)] = 11330, + [SMALL_STATE(163)] = 11365, + [SMALL_STATE(164)] = 11412, + [SMALL_STATE(165)] = 11447, + [SMALL_STATE(166)] = 11494, + [SMALL_STATE(167)] = 11529, + [SMALL_STATE(168)] = 11576, + [SMALL_STATE(169)] = 11611, + [SMALL_STATE(170)] = 11658, + [SMALL_STATE(171)] = 11693, + [SMALL_STATE(172)] = 11728, + [SMALL_STATE(173)] = 11763, + [SMALL_STATE(174)] = 11798, + [SMALL_STATE(175)] = 11835, + [SMALL_STATE(176)] = 11888, + [SMALL_STATE(177)] = 11923, + [SMALL_STATE(178)] = 11958, + [SMALL_STATE(179)] = 11993, + [SMALL_STATE(180)] = 12028, + [SMALL_STATE(181)] = 12063, + [SMALL_STATE(182)] = 12098, + [SMALL_STATE(183)] = 12133, + [SMALL_STATE(184)] = 12168, + [SMALL_STATE(185)] = 12203, + [SMALL_STATE(186)] = 12238, + [SMALL_STATE(187)] = 12273, + [SMALL_STATE(188)] = 12308, + [SMALL_STATE(189)] = 12343, + [SMALL_STATE(190)] = 12378, + [SMALL_STATE(191)] = 12413, + [SMALL_STATE(192)] = 12448, + [SMALL_STATE(193)] = 12483, + [SMALL_STATE(194)] = 12536, + [SMALL_STATE(195)] = 12589, + [SMALL_STATE(196)] = 12642, + [SMALL_STATE(197)] = 12677, + [SMALL_STATE(198)] = 12712, + [SMALL_STATE(199)] = 12749, + [SMALL_STATE(200)] = 12786, + [SMALL_STATE(201)] = 12823, + [SMALL_STATE(202)] = 12858, + [SMALL_STATE(203)] = 12893, + [SMALL_STATE(204)] = 12930, + [SMALL_STATE(205)] = 12983, + [SMALL_STATE(206)] = 13036, + [SMALL_STATE(207)] = 13071, + [SMALL_STATE(208)] = 13112, + [SMALL_STATE(209)] = 13165, + [SMALL_STATE(210)] = 13210, + [SMALL_STATE(211)] = 13247, + [SMALL_STATE(212)] = 13284, [SMALL_STATE(213)] = 13321, - [SMALL_STATE(214)] = 13357, + [SMALL_STATE(214)] = 13355, [SMALL_STATE(215)] = 13391, [SMALL_STATE(216)] = 13425, [SMALL_STATE(217)] = 13459, - [SMALL_STATE(218)] = 13503, - [SMALL_STATE(219)] = 13543, - [SMALL_STATE(220)] = 13581, + [SMALL_STATE(218)] = 13493, + [SMALL_STATE(219)] = 13537, + [SMALL_STATE(220)] = 13577, [SMALL_STATE(221)] = 13615, [SMALL_STATE(222)] = 13649, [SMALL_STATE(223)] = 13683, @@ -22220,81 +22220,81 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(239)] = 14227, [SMALL_STATE(240)] = 14261, [SMALL_STATE(241)] = 14295, - [SMALL_STATE(242)] = 14329, - [SMALL_STATE(243)] = 14375, - [SMALL_STATE(244)] = 14411, - [SMALL_STATE(245)] = 14449, - [SMALL_STATE(246)] = 14489, - [SMALL_STATE(247)] = 14533, - [SMALL_STATE(248)] = 14567, - [SMALL_STATE(249)] = 14601, - [SMALL_STATE(250)] = 14635, - [SMALL_STATE(251)] = 14669, - [SMALL_STATE(252)] = 14703, - [SMALL_STATE(253)] = 14749, - [SMALL_STATE(254)] = 14795, - [SMALL_STATE(255)] = 14829, - [SMALL_STATE(256)] = 14863, - [SMALL_STATE(257)] = 14909, - [SMALL_STATE(258)] = 14955, - [SMALL_STATE(259)] = 14989, - [SMALL_STATE(260)] = 15035, - [SMALL_STATE(261)] = 15069, - [SMALL_STATE(262)] = 15103, - [SMALL_STATE(263)] = 15137, - [SMALL_STATE(264)] = 15173, - [SMALL_STATE(265)] = 15207, - [SMALL_STATE(266)] = 15253, - [SMALL_STATE(267)] = 15299, + [SMALL_STATE(242)] = 14341, + [SMALL_STATE(243)] = 14377, + [SMALL_STATE(244)] = 14413, + [SMALL_STATE(245)] = 14451, + [SMALL_STATE(246)] = 14491, + [SMALL_STATE(247)] = 14535, + [SMALL_STATE(248)] = 14569, + [SMALL_STATE(249)] = 14603, + [SMALL_STATE(250)] = 14637, + [SMALL_STATE(251)] = 14671, + [SMALL_STATE(252)] = 14705, + [SMALL_STATE(253)] = 14751, + [SMALL_STATE(254)] = 14797, + [SMALL_STATE(255)] = 14831, + [SMALL_STATE(256)] = 14865, + [SMALL_STATE(257)] = 14911, + [SMALL_STATE(258)] = 14957, + [SMALL_STATE(259)] = 14991, + [SMALL_STATE(260)] = 15037, + [SMALL_STATE(261)] = 15071, + [SMALL_STATE(262)] = 15105, + [SMALL_STATE(263)] = 15139, + [SMALL_STATE(264)] = 15175, + [SMALL_STATE(265)] = 15221, + [SMALL_STATE(266)] = 15255, + [SMALL_STATE(267)] = 15289, [SMALL_STATE(268)] = 15333, - [SMALL_STATE(269)] = 15379, - [SMALL_STATE(270)] = 15413, - [SMALL_STATE(271)] = 15447, - [SMALL_STATE(272)] = 15491, - [SMALL_STATE(273)] = 15531, - [SMALL_STATE(274)] = 15569, - [SMALL_STATE(275)] = 15605, - [SMALL_STATE(276)] = 15641, - [SMALL_STATE(277)] = 15675, - [SMALL_STATE(278)] = 15709, - [SMALL_STATE(279)] = 15743, - [SMALL_STATE(280)] = 15777, - [SMALL_STATE(281)] = 15811, - [SMALL_STATE(282)] = 15845, - [SMALL_STATE(283)] = 15879, - [SMALL_STATE(284)] = 15913, - [SMALL_STATE(285)] = 15947, - [SMALL_STATE(286)] = 15981, - [SMALL_STATE(287)] = 16015, - [SMALL_STATE(288)] = 16049, - [SMALL_STATE(289)] = 16083, - [SMALL_STATE(290)] = 16117, - [SMALL_STATE(291)] = 16151, + [SMALL_STATE(269)] = 15373, + [SMALL_STATE(270)] = 15411, + [SMALL_STATE(271)] = 15445, + [SMALL_STATE(272)] = 15481, + [SMALL_STATE(273)] = 15515, + [SMALL_STATE(274)] = 15549, + [SMALL_STATE(275)] = 15583, + [SMALL_STATE(276)] = 15617, + [SMALL_STATE(277)] = 15651, + [SMALL_STATE(278)] = 15685, + [SMALL_STATE(279)] = 15719, + [SMALL_STATE(280)] = 15753, + [SMALL_STATE(281)] = 15787, + [SMALL_STATE(282)] = 15821, + [SMALL_STATE(283)] = 15855, + [SMALL_STATE(284)] = 15889, + [SMALL_STATE(285)] = 15923, + [SMALL_STATE(286)] = 15957, + [SMALL_STATE(287)] = 15991, + [SMALL_STATE(288)] = 16025, + [SMALL_STATE(289)] = 16059, + [SMALL_STATE(290)] = 16105, + [SMALL_STATE(291)] = 16139, [SMALL_STATE(292)] = 16185, [SMALL_STATE(293)] = 16219, - [SMALL_STATE(294)] = 16265, - [SMALL_STATE(295)] = 16311, + [SMALL_STATE(294)] = 16253, + [SMALL_STATE(295)] = 16299, [SMALL_STATE(296)] = 16345, [SMALL_STATE(297)] = 16379, [SMALL_STATE(298)] = 16413, [SMALL_STATE(299)] = 16447, [SMALL_STATE(300)] = 16481, - [SMALL_STATE(301)] = 16527, - [SMALL_STATE(302)] = 16561, - [SMALL_STATE(303)] = 16595, - [SMALL_STATE(304)] = 16629, - [SMALL_STATE(305)] = 16663, - [SMALL_STATE(306)] = 16697, - [SMALL_STATE(307)] = 16731, - [SMALL_STATE(308)] = 16765, - [SMALL_STATE(309)] = 16799, - [SMALL_STATE(310)] = 16833, - [SMALL_STATE(311)] = 16867, - [SMALL_STATE(312)] = 16901, - [SMALL_STATE(313)] = 16935, + [SMALL_STATE(301)] = 16515, + [SMALL_STATE(302)] = 16549, + [SMALL_STATE(303)] = 16583, + [SMALL_STATE(304)] = 16617, + [SMALL_STATE(305)] = 16651, + [SMALL_STATE(306)] = 16685, + [SMALL_STATE(307)] = 16719, + [SMALL_STATE(308)] = 16753, + [SMALL_STATE(309)] = 16787, + [SMALL_STATE(310)] = 16821, + [SMALL_STATE(311)] = 16855, + [SMALL_STATE(312)] = 16889, + [SMALL_STATE(313)] = 16923, [SMALL_STATE(314)] = 16969, - [SMALL_STATE(315)] = 17003, - [SMALL_STATE(316)] = 17039, + [SMALL_STATE(315)] = 17005, + [SMALL_STATE(316)] = 17051, [SMALL_STATE(317)] = 17085, [SMALL_STATE(318)] = 17119, [SMALL_STATE(319)] = 17153, @@ -22317,20 +22317,20 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(336)] = 17644, [SMALL_STATE(337)] = 17670, [SMALL_STATE(338)] = 17696, - [SMALL_STATE(339)] = 17734, - [SMALL_STATE(340)] = 17760, - [SMALL_STATE(341)] = 17798, - [SMALL_STATE(342)] = 17824, - [SMALL_STATE(343)] = 17862, - [SMALL_STATE(344)] = 17888, + [SMALL_STATE(339)] = 17722, + [SMALL_STATE(340)] = 17748, + [SMALL_STATE(341)] = 17786, + [SMALL_STATE(342)] = 17812, + [SMALL_STATE(343)] = 17850, + [SMALL_STATE(344)] = 17876, [SMALL_STATE(345)] = 17914, [SMALL_STATE(346)] = 17940, - [SMALL_STATE(347)] = 17976, - [SMALL_STATE(348)] = 18008, - [SMALL_STATE(349)] = 18038, - [SMALL_STATE(350)] = 18066, - [SMALL_STATE(351)] = 18094, - [SMALL_STATE(352)] = 18120, + [SMALL_STATE(347)] = 17966, + [SMALL_STATE(348)] = 17992, + [SMALL_STATE(349)] = 18028, + [SMALL_STATE(350)] = 18060, + [SMALL_STATE(351)] = 18090, + [SMALL_STATE(352)] = 18118, [SMALL_STATE(353)] = 18146, [SMALL_STATE(354)] = 18172, [SMALL_STATE(355)] = 18198, @@ -22359,16 +22359,16 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(378)] = 18870, [SMALL_STATE(379)] = 18906, [SMALL_STATE(380)] = 18939, - [SMALL_STATE(381)] = 18970, - [SMALL_STATE(382)] = 18991, - [SMALL_STATE(383)] = 19022, - [SMALL_STATE(384)] = 19055, + [SMALL_STATE(381)] = 18972, + [SMALL_STATE(382)] = 19003, + [SMALL_STATE(383)] = 19036, + [SMALL_STATE(384)] = 19067, [SMALL_STATE(385)] = 19088, - [SMALL_STATE(386)] = 19111, - [SMALL_STATE(387)] = 19132, - [SMALL_STATE(388)] = 19155, - [SMALL_STATE(389)] = 19188, - [SMALL_STATE(390)] = 19221, + [SMALL_STATE(386)] = 19119, + [SMALL_STATE(387)] = 19152, + [SMALL_STATE(388)] = 19185, + [SMALL_STATE(389)] = 19208, + [SMALL_STATE(390)] = 19229, [SMALL_STATE(391)] = 19252, [SMALL_STATE(392)] = 19285, [SMALL_STATE(393)] = 19305, @@ -22391,8 +22391,8 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(410)] = 19697, [SMALL_STATE(411)] = 19725, [SMALL_STATE(412)] = 19755, - [SMALL_STATE(413)] = 19777, - [SMALL_STATE(414)] = 19807, + [SMALL_STATE(413)] = 19785, + [SMALL_STATE(414)] = 19813, [SMALL_STATE(415)] = 19835, [SMALL_STATE(416)] = 19865, [SMALL_STATE(417)] = 19895, @@ -22562,11 +22562,11 @@ static const TSParseActionEntry ts_parse_actions[] = { [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(488), [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(462), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(554), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(502), [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), @@ -22575,31 +22575,31 @@ static const TSParseActionEntry ts_parse_actions[] = { [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(479), [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(450), [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(518), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(156), [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(545), [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(332), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), - [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(505), [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), + [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(221), [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(449), - [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(522), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(510), [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(302), @@ -22607,37 +22607,37 @@ static const TSParseActionEntry ts_parse_actions[] = { [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(454), [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), - [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), - [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), + [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), - [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), - [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(510), - [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(4), - [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(302), - [132] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(468), - [135] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(495), - [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(462), - [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(454), - [144] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(303), - [147] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(36), - [150] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(539), - [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(110), - [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(304), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), - [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), - [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(510), + [124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(4), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(302), + [130] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(468), + [133] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(495), + [136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(462), + [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(454), + [142] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(303), + [145] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(39), + [148] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(539), + [151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(130), + [154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), SHIFT_REPEAT(304), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 2, .production_id = 41), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(503), - [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), - [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), [185] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(510), [188] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(4), [191] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(302), @@ -22646,52 +22646,52 @@ static const TSParseActionEntry ts_parse_actions[] = { [200] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(462), [203] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(454), [206] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(303), - [209] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(36), + [209] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(39), [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(539), - [215] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(110), + [215] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(130), [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(304), [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 2, .production_id = 29), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), - [233] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(505), - [236] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(6), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), - [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(220), - [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(459), - [247] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(487), - [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(462), - [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(449), - [256] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(221), - [259] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(45), - [262] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(522), - [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(128), - [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(222), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), - [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), - [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), - [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), - [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), - [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), - [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [257] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(505), + [260] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(6), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), + [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(221), + [268] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(459), + [271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(487), + [274] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(462), + [277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(449), + [280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(222), + [283] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(60), + [286] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(522), + [289] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(131), + [292] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(223), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2), [319] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(503), [322] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(3), @@ -22699,99 +22699,99 @@ static const TSParseActionEntry ts_parse_actions[] = { [328] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(463), [331] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(488), [334] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(452), - [337] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(289), + [337] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(288), [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(19), [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(554), - [346] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(152), - [349] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(154), - [352] = {.entry = {.count = 1, .reusable = false}}, SHIFT(509), - [354] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), - [356] = {.entry = {.count = 1, .reusable = false}}, SHIFT(439), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), - [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT(451), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), - [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), - [372] = {.entry = {.count = 1, .reusable = false}}, SHIFT(432), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_content, 3, .production_id = 7), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(511), - [390] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), - [392] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), - [398] = {.entry = {.count = 1, .reusable = false}}, SHIFT(453), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), - [406] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), - [408] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_content, 2), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_identifier, 1), - [426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_identifier, 1), - [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_fn_identifier, 1), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_identifier, 1), - [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 28), - [434] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 6, .production_id = 28), - [436] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paren_expression, 3, .production_id = 4), - [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_paren_expression, 3, .production_id = 4), - [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 4, .production_id = 17), - [444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 4, .production_id = 17), - [446] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_literal, 2, .production_id = 3), - [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_literal, 2, .production_id = 3), - [452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), - [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 6, .production_id = 24), - [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 6, .production_id = 24), - [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [462] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [466] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 30), - [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 6, .production_id = 30), - [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int16_literal, 2, .production_id = 2), - [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int16_literal, 2, .production_id = 2), - [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 7, .production_id = 35), - [480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 7, .production_id = 35), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 8, .production_id = 39), - [484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 8, .production_id = 39), - [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 8, .production_id = 40), - [488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 8, .production_id = 40), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 9, .production_id = 45), - [492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 9, .production_id = 45), - [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int64_literal, 2, .production_id = 2), - [496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int64_literal, 2, .production_id = 2), - [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_literal, 1), - [500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_literal, 1), - [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 10, .production_id = 46), - [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 10, .production_id = 46), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [508] = {.entry = {.count = 1, .reusable = false}}, SHIFT(541), - [510] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365), - [512] = {.entry = {.count = 1, .reusable = false}}, SHIFT(535), - [514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(327), - [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int128_literal, 2, .production_id = 2), - [518] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int128_literal, 2, .production_id = 2), - [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int32_literal, 2, .production_id = 2), - [522] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int32_literal, 2, .production_id = 2), - [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_decl, 7, .production_id = 32), - [526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_fn_decl, 7, .production_id = 32), + [346] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(151), + [349] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(155), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [360] = {.entry = {.count = 1, .reusable = false}}, SHIFT(511), + [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), + [364] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), + [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(453), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), + [378] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), + [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(189), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_content, 3, .production_id = 7), + [386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(509), + [388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [390] = {.entry = {.count = 1, .reusable = false}}, SHIFT(439), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), + [396] = {.entry = {.count = 1, .reusable = false}}, SHIFT(451), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), + [404] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [406] = {.entry = {.count = 1, .reusable = false}}, SHIFT(432), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_content, 2), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 4, .production_id = 17), + [426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 4, .production_id = 17), + [428] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_identifier, 1), + [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_identifier, 1), + [434] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_fn_identifier, 1), + [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_identifier, 1), + [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 28), + [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 6, .production_id = 28), + [442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paren_expression, 3, .production_id = 4), + [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_paren_expression, 3, .production_id = 4), + [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_infix_operation, 3, .production_id = 10), + [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_infix_operation, 3, .production_id = 10), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [458] = {.entry = {.count = 1, .reusable = false}}, SHIFT(541), + [460] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364), + [462] = {.entry = {.count = 1, .reusable = false}}, SHIFT(535), + [464] = {.entry = {.count = 1, .reusable = false}}, SHIFT(327), + [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int128_literal, 2, .production_id = 2), + [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int128_literal, 2, .production_id = 2), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int32_literal, 2, .production_id = 2), + [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int32_literal, 2, .production_id = 2), + [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_decl, 7, .production_id = 32), + [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_fn_decl, 7, .production_id = 32), + [478] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [482] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), + [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 6, .production_id = 24), + [488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 6, .production_id = 24), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int16_literal, 2, .production_id = 2), + [492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int16_literal, 2, .production_id = 2), + [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 30), + [496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 6, .production_id = 30), + [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 7, .production_id = 35), + [500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 7, .production_id = 35), + [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 8, .production_id = 39), + [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 8, .production_id = 39), + [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 8, .production_id = 40), + [508] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 8, .production_id = 40), + [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_literal, 3, .production_id = 9), + [512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dict_literal, 3, .production_id = 9), + [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 9, .production_id = 45), + [516] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 9, .production_id = 45), + [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 10, .production_id = 46), + [520] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_expression, 10, .production_id = 46), + [522] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_literal, 2, .production_id = 3), + [526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_literal, 2, .production_id = 3), [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uint128_literal, 2, .production_id = 2), [530] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uint128_literal, 2, .production_id = 2), [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uint64_literal, 2, .production_id = 2), @@ -22800,172 +22800,172 @@ static const TSParseActionEntry ts_parse_actions[] = { [538] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uint32_literal, 2, .production_id = 2), [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3, .production_id = 5), [542] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3, .production_id = 5), - [544] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), - [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uint16_literal, 2, .production_id = 2), - [548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uint16_literal, 2, .production_id = 2), - [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uint8_literal, 2, .production_id = 2), - [552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uint8_literal, 2, .production_id = 2), - [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2, .production_id = 1), - [556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2, .production_id = 1), - [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int8_literal, 2, .production_id = 2), - [560] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int8_literal, 2, .production_id = 2), - [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [564] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_literal, 5, .production_id = 18), - [568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_literal, 5, .production_id = 18), - [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 3, .production_id = 6), - [572] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 3, .production_id = 6), - [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_literal, 4, .production_id = 15), - [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dict_literal, 4, .production_id = 15), - [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_literal, 6, .production_id = 26), - [580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_literal, 6, .production_id = 26), - [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 11), - [584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 11), - [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_infix_operation, 3, .production_id = 10), - [588] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_infix_operation, 3, .production_id = 10), - [590] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [592] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_literal, 3, .production_id = 8), - [596] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_literal, 3, .production_id = 8), - [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_literal, 3, .production_id = 9), - [600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dict_literal, 3, .production_id = 9), - [602] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [604] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), - [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), - [614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [616] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), - [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [622] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [626] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), - [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [632] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), - [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), - [638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 1, .production_id = 23), - [640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 1, .production_id = 23), - [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 3, .production_id = 6), + [546] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 3, .production_id = 6), + [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_literal, 3, .production_id = 8), + [550] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_literal, 3, .production_id = 8), + [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uint16_literal, 2, .production_id = 2), + [554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uint16_literal, 2, .production_id = 2), + [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uint8_literal, 2, .production_id = 2), + [558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_uint8_literal, 2, .production_id = 2), + [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2, .production_id = 1), + [562] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2, .production_id = 1), + [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [566] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_literal, 5, .production_id = 18), + [570] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_literal, 5, .production_id = 18), + [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_literal, 1), + [574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_literal, 1), + [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int8_literal, 2, .production_id = 2), + [578] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int8_literal, 2, .production_id = 2), + [580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_literal, 4, .production_id = 15), + [582] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dict_literal, 4, .production_id = 15), + [584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [586] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_literal, 6, .production_id = 26), + [590] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_literal, 6, .production_id = 26), + [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 11), + [594] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 11), + [596] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), + [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int64_literal, 2, .production_id = 2), + [600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int64_literal, 2, .production_id = 2), + [602] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [604] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [616] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [620] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [624] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), + [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [632] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102), + [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat1, 1, .production_id = 23), + [644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat1, 1, .production_id = 23), [646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat2, 1), [648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 1), [650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_expression_repeat2, 1, .production_id = 36), [652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_expression_repeat2, 1, .production_id = 36), - [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), [658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_identifier, 1), [660] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_identifier, 1), [662] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_identifier, 1), - [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [672] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_type_name, 1), - [678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_type_name, 1), - [680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_reference, 1), - [682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_reference, 1), - [684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_builtin_type, 1), - [686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_builtin_type, 1), - [688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_type_name, 2), - [690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_type_name, 2), - [692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_type_reference, 4, .production_id = 33), - [694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dict_type_reference, 4, .production_id = 33), + [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [672] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), + [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type_reference, 6, .production_id = 43), + [678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type_reference, 6, .production_id = 43), + [680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_builtin_type, 1), + [682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_builtin_type, 1), + [684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_reference, 1), + [686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_reference, 1), + [688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_type_name, 1), + [690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_type_name, 1), + [692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_type_name, 2), + [694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_type_name, 2), [696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_type_reference, 4, .production_id = 34), [698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_type_reference, 4, .production_id = 34), - [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type_reference, 5, .production_id = 37), - [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type_reference, 5, .production_id = 37), - [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type_reference, 6, .production_id = 43), - [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type_reference, 6, .production_id = 43), + [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_type_reference, 4, .production_id = 33), + [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dict_type_reference, 4, .production_id = 33), + [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type_reference, 5, .production_id = 37), + [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_type_reference, 5, .production_id = 37), [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), [710] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(508), [713] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), [715] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(504), - [718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), - [720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), - [726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), - [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_content, 1), - [734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_literal_the_rest_repeat1, 2, .production_id = 25), - [742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_pair, 3, .production_id = 20), - [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), - [750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_decl, 4, .production_id = 12), - [756] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_decl, 4, .production_id = 12), - [758] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), - [766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_content_repeat1, 2, .production_id = 13), - [770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), - [776] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), - [778] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), - [780] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), - [782] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), - [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_literal_the_rest_repeat1, 2, .production_id = 25), + [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_pair, 3, .production_id = 20), + [752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_content_repeat1, 2, .production_id = 13), + [754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_decl, 4, .production_id = 12), + [766] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_decl, 4, .production_id = 12), + [768] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [776] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), + [778] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), + [780] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), + [782] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(490), [794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), - [796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [798] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), - [800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [798] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), + [800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), [804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), - [808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), [810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(494), - [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), - [816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), [818] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_fn_name, 1), [820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_fn_name, 1), [822] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_qualified_fn_name, 2), [824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualified_fn_name, 2), [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_digits, 1), - [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), - [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), - [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), - [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), [848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), - [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), - [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), - [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), + [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), [882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), @@ -22983,20 +22983,20 @@ static const TSParseActionEntry ts_parse_actions[] = { [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), - [914] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), + [914] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), [916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), - [918] = {.entry = {.count = 1, .reusable = false}}, SHIFT(187), - [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), - [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), - [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [930] = {.entry = {.count = 1, .reusable = false}}, SHIFT(314), - [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), - [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [918] = {.entry = {.count = 1, .reusable = false}}, SHIFT(188), + [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [930] = {.entry = {.count = 1, .reusable = false}}, SHIFT(312), + [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), [942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_decl_params, 1), [944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), [946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), @@ -23007,66 +23007,66 @@ static const TSParseActionEntry ts_parse_actions[] = { [956] = {.entry = {.count = 1, .reusable = false}}, SHIFT(333), [958] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305), [960] = {.entry = {.count = 1, .reusable = false}}, SHIFT(436), - [962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), [972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), [974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), [976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), [980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), [982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), - [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), - [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), [988] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1), [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), [992] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2), [994] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2), SHIFT_REPEAT(475), [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_qualified_fn_name_repeat1, 2), [999] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_qualified_fn_name_repeat1, 2), SHIFT_REPEAT(545), - [1002] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dict_content_repeat1, 2, .production_id = 22), SHIFT_REPEAT(89), + [1002] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dict_content_repeat1, 2, .production_id = 22), SHIFT_REPEAT(68), [1005] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dict_content_repeat1, 2, .production_id = 22), [1007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_reference_tuple_the_rest_repeat1, 2, .production_id = 44), - [1009] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_reference_tuple_the_rest_repeat1, 2, .production_id = 44), SHIFT_REPEAT(173), + [1009] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_reference_tuple_the_rest_repeat1, 2, .production_id = 44), SHIFT_REPEAT(160), [1012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534), - [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_content, 1), - [1020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [1020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), [1022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), [1028] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_content, 2, .production_id = 7), - [1030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [1030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), [1032] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_decl_param, 5, .production_id = 31), [1034] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_fn_decl_param, 5, .production_id = 31), [1036] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_literal_the_rest, 1, .production_id = 19), [1038] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_reference_tuple_the_rest, 1, .production_id = 38), - [1040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [1040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), [1042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), [1044] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dict_content, 2, .production_id = 16), [1046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_content_repeat1, 2, .production_id = 14), - [1048] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_content_repeat1, 2, .production_id = 14), SHIFT_REPEAT(123), - [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [1053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [1048] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_content_repeat1, 2, .production_id = 14), SHIFT_REPEAT(125), + [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [1053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), [1059] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_literal_the_rest_repeat1, 2, .production_id = 27), - [1061] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_literal_the_rest_repeat1, 2, .production_id = 27), SHIFT_REPEAT(116), - [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1061] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_literal_the_rest_repeat1, 2, .production_id = 27), SHIFT_REPEAT(118), + [1064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [1066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [1068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), [1070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(540), [1072] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dict_content_repeat1, 2, .production_id = 21), [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_reference_tuple_the_rest_repeat1, 2, .production_id = 42), - [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), + [1076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), [1078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [1080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), [1082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [1086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [1084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [1086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [1090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), [1092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), @@ -23076,47 +23076,47 @@ static const TSParseActionEntry ts_parse_actions[] = { [1100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), [1102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), [1104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [1106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [1106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), [1108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), - [1110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [1110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), [1112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [1114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [1114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), [1116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), [1120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character, 1), - [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [1124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), [1126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [1128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [1128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), [1130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [1132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), [1134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), [1138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [1142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), [1144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), - [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), [1152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), [1154] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), [1156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [1158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), - [1160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), - [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), - [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), - [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), - [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [1182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [1158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), + [1160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [1162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [1170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [1178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [1182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [1184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [1186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), }; #ifdef __cplusplus diff --git a/vscode-extension/client/src/ServerBackedTreeDataProvider.ts b/vscode-extension/client/src/ServerBackedTreeDataProvider.ts new file mode 100644 index 0000000000..025062cde4 --- /dev/null +++ b/vscode-extension/client/src/ServerBackedTreeDataProvider.ts @@ -0,0 +1,50 @@ +import * as vscode from "vscode"; +import { LanguageClient } from "vscode-languageclient/node"; + +export class Node extends vscode.TreeItem { + constructor( + public readonly id: string, + public readonly label: string, + public readonly type: "file" | "directory", + public readonly collapsibleState: vscode.TreeItemCollapsibleState, + ) { + super(label, collapsibleState); + this.tooltip = `${this.label} (${this.type})`; + this.description = this.type; + } + + // You might want to include contextValue if you're implementing context menus + contextValue = "myTreeNode"; +} + +export class ServerBackedTreeDataProvider + implements vscode.TreeDataProvider +{ + private _client: LanguageClient; + + constructor(client: LanguageClient) { + this._client = client; + } + + /** Maps from our internal 'Node' to `TreeItem` + * + * At time of writing, our 'Node' _is_ just a TreeItem, so maybe this is silly. + */ + getTreeItem(node: Node): vscode.TreeItem { + return { + id: node.id, + label: node.label, + collapsibleState: node.collapsibleState, + }; + } + + async getChildren(node?: Node): Promise { + if (!node) { + return this._client.sendRequest("darklang/getRootNodes"); + } else { + return this._client.sendRequest("darklang/getChildNodes", { + nodeId: node.id, + }); + } + } +} diff --git a/vscode-extension/client/src/extension.ts b/vscode-extension/client/src/extension.ts index 7a761d84d8..a28792ea2b 100644 --- a/vscode-extension/client/src/extension.ts +++ b/vscode-extension/client/src/extension.ts @@ -9,6 +9,7 @@ import { Trace, TransportKind, } from "vscode-languageclient/node"; +import { ServerBackedTreeDataProvider } from "./ServerBackedTreeDataProvider"; let client: LanguageClient; @@ -62,6 +63,21 @@ export function activate(context: ExtensionContext) { client.registerFeature(new SemanticTokensFeature(client)); client.trace = Trace.Verbose; + client + .onReady() + .then(() => { + // TODO: only when initialized... + //client.onNotification("initialized", () => { + let view = vscode.window.createTreeView(`darklangTreeView`, { + treeDataProvider: new ServerBackedTreeDataProvider(client), + }); + context.subscriptions.push(view); + //}); + }) + .catch(e => { + console.error(e); + }); + client.start(); let disposable = commands.registerCommand("darklang.runScript", () => { diff --git a/vscode-extension/package.json b/vscode-extension/package.json index 94c17c3593..c42442f353 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -55,7 +55,25 @@ "command": "darklang.runScript", "title": "Run Darklang Script" } - ] + ], + "viewsContainers": { + "activitybar": [ + { + "id": "darklangViewContainer", + "title": "Darklang", + "icon": "static/logo-dark-transparent-low-margin.svg" + } + ] + }, + "views": { + "darklangViewContainer": [ + { + "id": "darklangTreeView", + "name": "tree view of packages", + "_todo_when": "workspaceHasFolder" + } + ] + } }, "scripts": { diff --git a/vscode-extension/static/logo-dark-transparent-low-margin.svg b/vscode-extension/static/logo-dark-transparent-low-margin.svg new file mode 100644 index 0000000000..5f8218d390 --- /dev/null +++ b/vscode-extension/static/logo-dark-transparent-low-margin.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file