From 568dcdd04f8095681e3b8b66ea6d3dc0ff0556cb Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Mon, 17 Nov 2025 19:03:29 +0100 Subject: [PATCH 01/14] Baml HIR --- baml_language/Cargo.lock | 1 + baml_language/crates/baml_db/src/lib.rs | 3 + baml_language/crates/baml_hir/Cargo.toml | 1 + .../crates/baml_hir/src/container.rs | 92 + baml_language/crates/baml_hir/src/ids.rs | 150 +- .../crates/baml_hir/src/item_tree.rs | 263 + baml_language/crates/baml_hir/src/lib.rs | 480 +- baml_language/crates/baml_hir/src/loc.rs | 75 + baml_language/crates/baml_hir/src/path.rs | 75 + baml_language/crates/baml_hir/src/type_ref.rs | 84 + .../crates/baml_onionskin/src/compiler.rs | 5 +- .../crates/baml_parser/src/parser.rs | 60 +- baml_language/crates/baml_syntax/src/ast.rs | 4 +- .../crates/baml_syntax/src/builder.rs | 4 +- baml_language/crates/baml_tests/build.rs | 42 +- .../baml_tests__basic_types__03_hir.snap | 18 +- .../baml_tests__error_cases__03_hir.snap | 7 +- ..._tests__generics__02_parser__fetch_as.snap | 3 +- .../baml_tests__generics__03_hir.snap | 10 +- .../baml_tests__generics__05_diagnostics.snap | 3 +- ...ml_tests__parser_constructors__03_hir.snap | 46 +- ...or_recovery__02_parser__partial_input.snap | 13 +- ..._tests__parser_error_recovery__03_hir.snap | 39 +- ...parser_error_recovery__05_diagnostics.snap | 7 +- ...xpressions__02_parser__if_expressions.snap | 129 +- ...essions__02_parser__match_expressions.snap | 370 +- ...aml_tests__parser_expressions__03_hir.snap | 24 +- ...s__parser_expressions__05_diagnostics.snap | 188 +- ...lative__02_parser__ambiguous_function.snap | 107 +- ...speculative__02_parser__expr_function.snap | 115 +- ..._speculative__02_parser__llm_function.snap | 100 +- ...eculative__02_parser__mixed_functions.snap | 550 +- ...aml_tests__parser_speculative__03_hir.snap | 36 +- ...s__parser_speculative__05_diagnostics.snap | 267 +- ..._parser_stress__02_parser__large_file.snap | 7204 +++++++---------- ...arser_stress__02_parser__very_invalid.snap | 18 +- .../baml_tests__parser_stress__03_hir.snap | 5856 +++++++++++++- ..._tests__parser_stress__05_diagnostics.snap | 2307 +----- ...ser_strings__02_parser__nested_quotes.snap | 138 +- ...arser_strings__02_parser__raw_strings.snap | 104 +- ...r_strings__02_parser__unicode_strings.snap | 4 +- .../baml_tests__parser_strings__03_hir.snap | 58 +- ...tests__parser_strings__05_diagnostics.snap | 78 +- .../baml_tests__simple_function__03_hir.snap | 10 +- baml_language/crates/baml_tests/src/lib.rs | 83 + baml_language/crates/baml_thir/src/lib.rs | 40 +- baml_language/crates/baml_thir/src/types.rs | 19 +- 47 files changed, 10894 insertions(+), 8396 deletions(-) create mode 100644 baml_language/crates/baml_hir/src/container.rs create mode 100644 baml_language/crates/baml_hir/src/item_tree.rs create mode 100644 baml_language/crates/baml_hir/src/loc.rs create mode 100644 baml_language/crates/baml_hir/src/path.rs create mode 100644 baml_language/crates/baml_hir/src/type_ref.rs diff --git a/baml_language/Cargo.lock b/baml_language/Cargo.lock index 2fe6f6ffee..bc3247a022 100644 --- a/baml_language/Cargo.lock +++ b/baml_language/Cargo.lock @@ -150,6 +150,7 @@ dependencies = [ "baml_parser", "baml_syntax", "baml_workspace", + "rowan", "salsa", ] diff --git a/baml_language/crates/baml_db/src/lib.rs b/baml_language/crates/baml_db/src/lib.rs index 4b4fcebd29..3d405d0a79 100644 --- a/baml_language/crates/baml_db/src/lib.rs +++ b/baml_language/crates/baml_db/src/lib.rs @@ -35,6 +35,9 @@ pub struct RootDatabase { #[salsa::db] impl salsa::Database for RootDatabase {} +#[salsa::db] +impl baml_hir::Db for RootDatabase {} + impl RootDatabase { /// Create a new empty database. pub fn new() -> Self { diff --git a/baml_language/crates/baml_hir/Cargo.toml b/baml_language/crates/baml_hir/Cargo.toml index 51eb4fe4ba..b236aaaf88 100644 --- a/baml_language/crates/baml_hir/Cargo.toml +++ b/baml_language/crates/baml_hir/Cargo.toml @@ -22,4 +22,5 @@ baml_parser = { workspace = true } baml_syntax = { workspace = true } baml_workspace = { workspace = true } +rowan = { workspace = true } salsa = { workspace = true } diff --git a/baml_language/crates/baml_hir/src/container.rs b/baml_language/crates/baml_hir/src/container.rs new file mode 100644 index 0000000000..5f9e9b2610 --- /dev/null +++ b/baml_language/crates/baml_hir/src/container.rs @@ -0,0 +1,92 @@ +//! Container abstraction for item locations. +//! +//! A container represents where an item is defined: +//! - Currently: Always a file +//! - Future: Could be a module or block scope +//! +//! This abstraction future-proofs the design for modules without requiring +//! breaking changes when they're added. + +use baml_base::FileId; + +/// Container that holds items. +/// +/// This abstraction allows items to be located in: +/// - Files (current implementation) +/// - Modules (future feature) +/// - Block scopes (future feature) +/// +/// Note: Cannot be Copy because of Box. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub enum ContainerId { + /// Item defined directly in a file (current behavior). + File(FileId), + + /// Item defined in a module (future feature). + /// Currently unused, but costs nothing to have. + #[allow(dead_code)] + Module(ModuleId), + + /// Item defined in a block expression (future feature). + /// For block-scoped definitions. + /// Boxed to break the recursion cycle. + #[allow(dead_code)] + Block(Box), +} + +impl ContainerId { + /// Constructor for current file-based system. + pub const fn file(file: FileId) -> Self { + ContainerId::File(file) + } + + /// Get the file this container belongs to (if known). + pub fn file_id(self) -> Option { + match self { + ContainerId::File(f) => Some(f), + // Future: Walk up module tree to find file + _ => None, + } + } +} + +/// Module identifier (future feature). +/// +/// Even though we don't use modules yet, defining this now costs nothing +/// and makes the future transition trivial. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct ModuleId { + /// The project this module belongs to. + pub project: ProjectId, + + /// The module's index within its `DefMap`. + pub local_id: LocalModuleId, +} + +impl ModuleId { + /// The root module (equivalent to current "global scope"). + pub const ROOT: ModuleId = ModuleId { + project: ProjectId(0), + local_id: LocalModuleId(0), + }; +} + +/// Local module ID within a project. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct LocalModuleId(pub u32); + +/// Project identifier (future feature for multi-crate support). +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct ProjectId(pub u32); + +/// Block scope identifier (future feature). +/// +/// Note: Cannot be Copy because `ContainerId` contains Box. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct BlockId { + /// The function or item containing this block. + pub parent: ContainerId, + + /// Local ID within the parent. + pub local_id: u32, +} diff --git a/baml_language/crates/baml_hir/src/ids.rs b/baml_language/crates/baml_hir/src/ids.rs index 4de018acde..cf72eb8374 100644 --- a/baml_language/crates/baml_hir/src/ids.rs +++ b/baml_language/crates/baml_hir/src/ids.rs @@ -1,32 +1,136 @@ -//! HIR item identifiers. +//! HIR item identifiers with Salsa interning. +//! +//! This module defines stable IDs for all top-level items in BAML. +//! IDs are interned via Salsa, providing: +//! - Stability across edits (content-based, not order-based) +//! - Compactness (u32 instead of full location data) +//! - Efficient comparison and hashing -use baml_base::{FileId, Name}; +use std::marker::PhantomData; -/// A function in the HIR. -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct FunctionId { - pub file: FileId, - pub name: Name, +// Note: In Salsa 2022, interned types are their own IDs. +// The #[salsa::interned] macro in loc.rs creates these types directly. +// We re-export them here as type aliases for clarity. + +/// Identifier for a function (LLM or expression). +/// This is the interned `FunctionLoc` from loc.rs. +pub use crate::loc::FunctionLoc as FunctionId; + +/// Identifier for a class definition. +pub use crate::loc::ClassLoc as ClassId; + +/// Identifier for an enum definition. +pub use crate::loc::EnumLoc as EnumId; + +/// Identifier for a type alias. +pub use crate::loc::TypeAliasLoc as TypeAliasId; + +/// Identifier for a client configuration. +pub use crate::loc::ClientLoc as ClientId; + +/// Identifier for a test definition. +pub use crate::loc::TestLoc as TestId; + +// Manual Debug implementations for Salsa interned types +// These types don't auto-derive Debug, so we provide simple implementations + +impl std::fmt::Debug for FunctionId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "FunctionId(..)") + } +} + +impl std::fmt::Debug for ClassId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "ClassId(..)") + } +} + +impl std::fmt::Debug for EnumId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "EnumId(..)") + } +} + +impl std::fmt::Debug for TypeAliasId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "TypeAliasId(..)") + } +} + +impl std::fmt::Debug for ClientId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "ClientId(..)") + } +} + +impl std::fmt::Debug for TestId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "TestId(..)") + } +} + +/// Union type for any top-level item. +/// +/// Note: Salsa interned types have a `'db` lifetime, so `ItemId` must also have one. +#[derive(Clone, Copy, PartialEq, Eq, Hash, salsa::Update)] +pub enum ItemId<'db> { + Function(FunctionId<'db>), + Class(ClassId<'db>), + Enum(EnumId<'db>), + TypeAlias(TypeAliasId<'db>), + Client(ClientId<'db>), + Test(TestId<'db>), } -/// A class in the HIR. -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct ClassId { - pub file: FileId, - pub name: Name, +// Manual Debug impl since Salsa interned types don't auto-derive Debug +impl std::fmt::Debug for ItemId<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ItemId::Function(_) => write!(f, "Function(_)"), + ItemId::Class(_) => write!(f, "Class(_)"), + ItemId::Enum(_) => write!(f, "Enum(_)"), + ItemId::TypeAlias(_) => write!(f, "TypeAlias(_)"), + ItemId::Client(_) => write!(f, "Client(_)"), + ItemId::Test(_) => write!(f, "Test(_)"), + } + } +} + +/// Local ID within an arena (type-safe index). +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct LocalItemId { + index: u32, + _phantom: PhantomData, +} + +impl LocalItemId { + pub const fn new(index: u32) -> Self { + LocalItemId { + index, + _phantom: PhantomData, + } + } + + pub const fn as_u32(self) -> u32 { + self.index + } + + pub const fn as_usize(self) -> usize { + self.index as usize + } } -/// An enum in the HIR. -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct EnumId { - pub file: FileId, - pub name: Name, +// Implement From for convenience +impl From for LocalItemId { + fn from(index: u32) -> Self { + LocalItemId::new(index) + } } -/// Any top-level item. -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub enum ItemId { - Function(FunctionId), - Class(ClassId), - Enum(EnumId), +impl From for LocalItemId { + #[allow(clippy::cast_possible_truncation)] + fn from(index: usize) -> Self { + LocalItemId::new(index as u32) + } } diff --git a/baml_language/crates/baml_hir/src/item_tree.rs b/baml_language/crates/baml_hir/src/item_tree.rs new file mode 100644 index 0000000000..0c4fefefa8 --- /dev/null +++ b/baml_language/crates/baml_hir/src/item_tree.rs @@ -0,0 +1,263 @@ +//! Position-independent item storage. +//! +//! The `ItemTree` contains minimal representations of all items in a container. +//! It acts as an "invalidation barrier" - only changes to item signatures +//! cause the `ItemTree` to change, not edits to whitespace, comments, or bodies. + +use crate::{ + ids::LocalItemId, + loc::{ClassMarker, ClientMarker, EnumMarker, FunctionMarker, TestMarker, TypeAliasMarker}, + path::Path, + type_ref::TypeRef, +}; +use baml_base::Name; +use std::ops::Index; + +/// Position-independent item storage for a container. +/// +/// This is the core HIR data structure. Items are stored in arenas +/// with stable indices that survive source code edits. +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub struct ItemTree { + pub functions: Vec, + pub classes: Vec, + pub enums: Vec, + pub type_aliases: Vec, + pub clients: Vec, + pub tests: Vec, +} + +impl ItemTree { + /// Create a new empty `ItemTree`. + pub fn new() -> Self { + Self::default() + } + + /// Add a function and return its local ID. + #[allow(clippy::cast_possible_truncation)] + pub fn alloc_function(&mut self, func: Function) -> LocalItemId { + let id = self.functions.len(); + self.functions.push(func); + LocalItemId::new(id as u32) + } + + /// Add a class and return its local ID. + #[allow(clippy::cast_possible_truncation)] + pub fn alloc_class(&mut self, class: Class) -> LocalItemId { + let id = self.classes.len(); + self.classes.push(class); + LocalItemId::new(id as u32) + } + + /// Add an enum and return its local ID. + #[allow(clippy::cast_possible_truncation)] + pub fn alloc_enum(&mut self, enum_def: Enum) -> LocalItemId { + let id = self.enums.len(); + self.enums.push(enum_def); + LocalItemId::new(id as u32) + } + + /// Add a type alias and return its local ID. + #[allow(clippy::cast_possible_truncation)] + pub fn alloc_type_alias(&mut self, alias: TypeAlias) -> LocalItemId { + let id = self.type_aliases.len(); + self.type_aliases.push(alias); + LocalItemId::new(id as u32) + } + + /// Add a client and return its local ID. + #[allow(clippy::cast_possible_truncation)] + pub fn alloc_client(&mut self, client: Client) -> LocalItemId { + let id = self.clients.len(); + self.clients.push(client); + LocalItemId::new(id as u32) + } + + /// Add a test and return its local ID. + #[allow(clippy::cast_possible_truncation)] + pub fn alloc_test(&mut self, test: Test) -> LocalItemId { + let id = self.tests.len(); + self.tests.push(test); + LocalItemId::new(id as u32) + } + + /// Get a function by local ID. + pub fn function(&self, id: LocalItemId) -> Option<&Function> { + self.functions.get(id.as_usize()) + } + + /// Get a class by local ID. + pub fn class(&self, id: LocalItemId) -> Option<&Class> { + self.classes.get(id.as_usize()) + } + + /// Get an enum by local ID. + pub fn enum_def(&self, id: LocalItemId) -> Option<&Enum> { + self.enums.get(id.as_usize()) + } + + /// Get a type alias by local ID. + pub fn type_alias(&self, id: LocalItemId) -> Option<&TypeAlias> { + self.type_aliases.get(id.as_usize()) + } + + /// Get a client by local ID. + pub fn client(&self, id: LocalItemId) -> Option<&Client> { + self.clients.get(id.as_usize()) + } + + /// Get a test by local ID. + pub fn test(&self, id: LocalItemId) -> Option<&Test> { + self.tests.get(id.as_usize()) + } +} + +/// A function definition in the `ItemTree`. +/// +/// This is the minimal representation - just the signature. +/// Function bodies are stored separately for incrementality. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Function { + pub name: Name, + pub params: Vec, + pub return_type: TypeRef, + + /// Unresolved client reference (name only). + pub client_ref: Option, + + /// Future: Type parameters for generic functions. + pub type_params: Vec, +} + +/// Function parameter. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Param { + pub name: Name, + pub type_ref: TypeRef, +} + +/// A class definition. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Class { + pub name: Name, + pub fields: Vec, + + /// Block attributes (@@dynamic, @@alias, etc.). + pub is_dynamic: bool, + + /// Future: Type parameters for generic classes. + pub type_params: Vec, +} + +/// Class field. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Field { + pub name: Name, + pub type_ref: TypeRef, +} + +/// An enum definition. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Enum { + pub name: Name, + pub variants: Vec, + + /// Future: Type parameters. + pub type_params: Vec, +} + +/// Enum variant. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct EnumVariant { + pub name: Name, +} + +/// Type alias definition. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TypeAlias { + pub name: Name, + pub type_ref: TypeRef, + + /// Future: Type parameters for generic aliases. + pub type_params: Vec, +} + +/// Client configuration. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Client { + pub name: Name, + pub provider: Name, +} + +/// Test definition. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Test { + pub name: Name, + + /// Unresolved function references. + pub function_refs: Vec, +} + +/// Type parameter (for generics, currently unused). +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct TypeParam { + pub name: Name, + + /// Type parameter bounds (T: `SomeTrait`) (future). + pub bounds: Vec, + + /// Default type (T = string) (future). + pub default: Option, +} + +// +// ──────────────────────────────────────────────────────── INDEX IMPLS ───── +// + +/// Index `ItemTree` by `FunctionMarker` to get Function data. +impl Index> for ItemTree { + type Output = Function; + fn index(&self, index: LocalItemId) -> &Self::Output { + &self.functions[index.as_usize()] + } +} + +/// Index `ItemTree` by `ClassMarker` to get Class data. +impl Index> for ItemTree { + type Output = Class; + fn index(&self, index: LocalItemId) -> &Self::Output { + &self.classes[index.as_usize()] + } +} + +/// Index `ItemTree` by `EnumMarker` to get Enum data. +impl Index> for ItemTree { + type Output = Enum; + fn index(&self, index: LocalItemId) -> &Self::Output { + &self.enums[index.as_usize()] + } +} + +/// Index `ItemTree` by `TypeAliasMarker` to get `TypeAlias` data. +impl Index> for ItemTree { + type Output = TypeAlias; + fn index(&self, index: LocalItemId) -> &Self::Output { + &self.type_aliases[index.as_usize()] + } +} + +/// Index `ItemTree` by `ClientMarker` to get Client data. +impl Index> for ItemTree { + type Output = Client; + fn index(&self, index: LocalItemId) -> &Self::Output { + &self.clients[index.as_usize()] + } +} + +/// Index `ItemTree` by `TestMarker` to get Test data. +impl Index> for ItemTree { + type Output = Test; + fn index(&self, index: LocalItemId) -> &Self::Output { + &self.tests[index.as_usize()] + } +} diff --git a/baml_language/crates/baml_hir/src/lib.rs b/baml_language/crates/baml_hir/src/lib.rs index d9ee73e5c8..fe7febe0dd 100644 --- a/baml_language/crates/baml_hir/src/lib.rs +++ b/baml_language/crates/baml_hir/src/lib.rs @@ -1,85 +1,469 @@ //! High-level Intermediate Representation. //! //! Provides name resolution and semantic analysis after parsing. +//! +//! ## Architecture +//! +//! The HIR is built in layers: +//! 1. **`ItemTree`**: Position-independent item storage (signatures only) +//! 2. **Interning**: Locations → Stable IDs via Salsa +//! 3. **Name Resolution**: Paths → Item IDs (future) +//! +//! ## Key Design Choices +//! +//! - **Salsa-based incrementality**: Only recompute what changed +//! - **Stable IDs**: Content-based interning survives edits +//! - **Future-proof**: Ready for modules and generics + +use std::sync::Arc; use baml_base::{Name, SourceFile}; use baml_parser::syntax_tree; -use baml_workspace::project_files; +use baml_syntax::SyntaxNode; +use rowan::ast::AstNode; +// Module declarations +mod container; mod ids; -mod types; +mod item_tree; +mod loc; +mod path; +mod type_ref; +// Re-exports +pub use container::{BlockId, ContainerId, LocalModuleId, ModuleId, ProjectId}; pub use ids::*; -pub use types::*; +pub use item_tree::*; +pub use loc::*; +pub use path::*; +pub use type_ref::*; + +// +// ──────────────────────────────────────────────────────────── DATABASE ───── +// + +/// Database trait for HIR queries. +/// +/// This trait is implemented by the root database and provides access +/// to all HIR-related Salsa queries and interned types. +/// +/// For now, this just extends `salsa::Database`. In the future, we can add +/// dependencies on other crate Db traits when they're implemented. +#[salsa::db] +pub trait Db: salsa::Database {} + +// +// ───────────────────────────────────────────────────── TRACKED STRUCTS ───── +// + +/// Tracked struct holding all items defined in a file. +/// +/// This follows the Salsa 2022 pattern: instead of returning Vec> +/// directly from a tracked function, we wrap it in a tracked struct with +/// #[returns(ref)] to avoid lifetime issues. +#[salsa::tracked] +pub struct FileItems<'db> { + #[tracked] + #[returns(ref)] + pub items: Vec>, +} + +/// Tracked struct holding all items in a project. +#[salsa::tracked] +pub struct ProjectItems<'db> { + #[tracked] + #[returns(ref)] + pub items: Vec>, +} + +// +// ────────────────────────────────────────────────────────── SALSA QUERIES ───── +// + +/// Tracked: Extract `ItemTree` from a file's syntax tree. +/// +/// This query is the "invalidation barrier" - it only changes when +/// item signatures change, not when whitespace/comments/bodies change. +#[salsa::tracked] +pub fn file_item_tree(db: &dyn Db, file: SourceFile) -> Arc { + let tree = syntax_tree(db, file); + let item_tree = lower_file(&tree); + Arc::new(item_tree) +} -/// Tracked: get all items defined in a file +// Future: When we add modules, we'll need a function like this: +// #[salsa::tracked] +// pub fn container_item_tree(db: &dyn Db, container: ContainerId) -> Arc + +/// Tracked: Get all items defined in a file. +/// +/// Returns a tracked struct containing interned IDs for all top-level items. #[salsa::tracked] -pub fn file_items(db: &dyn salsa::Database, file: SourceFile) -> Vec { - // TODO: Extract items from syntax tree - let _tree = syntax_tree(db, file); - vec![] +pub fn file_items(db: &dyn Db, file: SourceFile) -> FileItems<'_> { + let item_tree = file_item_tree(db, file); + let file_id = file.file_id(db); + let items = intern_all_items(db, file_id, &item_tree); + FileItems::new(db, items) } -/// Tracked: get all items in the entire project +/// Tracked: Get all items in the entire project. #[salsa::tracked] -pub fn project_items(db: &dyn salsa::Database, root: baml_workspace::ProjectRoot) -> Vec { - let files = project_files(db, root); +pub fn project_items(db: &dyn Db, root: baml_workspace::ProjectRoot) -> ProjectItems<'_> { + let files = baml_workspace::project_files(db, root); let mut all_items = Vec::new(); for file in files { - let items = file_items(db, file); - all_items.extend(items); + let items_struct = file_items(db, file); + all_items.extend(items_struct.items(db).iter().copied()); } - all_items + ProjectItems::new(db, all_items) } -/// Tracked: resolve a name to an item -#[salsa::tracked] -pub fn resolve_name(db: &dyn salsa::Database, from: SourceFile, _name: Name) -> Option { - // TODO: Implement name resolution - // For now, just check items in the current file - let _items = file_items(db, from); +// +// ──────────────────────────────────────────────────────── INTERN HELPERS ───── +// + +/// Intern all items from an `ItemTree` and return their IDs. +#[allow(clippy::cast_possible_truncation)] +fn intern_all_items<'db>( + db: &'db dyn Db, + file: baml_base::FileId, + tree: &ItemTree, +) -> Vec> { + let mut items = Vec::new(); + + // Intern functions + for (idx, _func) in tree.functions.iter().enumerate() { + let loc = FunctionLoc::new(db, file, LocalItemId::new(idx as u32)); + items.push(ItemId::Function(loc)); + } + + // Intern classes + for (idx, _class) in tree.classes.iter().enumerate() { + let loc = ClassLoc::new(db, file, LocalItemId::new(idx as u32)); + items.push(ItemId::Class(loc)); + } + + // Intern enums + for (idx, _enum) in tree.enums.iter().enumerate() { + let loc = EnumLoc::new(db, file, LocalItemId::new(idx as u32)); + items.push(ItemId::Enum(loc)); + } + + // Intern type aliases + for (idx, _alias) in tree.type_aliases.iter().enumerate() { + let loc = TypeAliasLoc::new(db, file, LocalItemId::new(idx as u32)); + items.push(ItemId::TypeAlias(loc)); + } + + // Intern clients + for (idx, _client) in tree.clients.iter().enumerate() { + let loc = ClientLoc::new(db, file, LocalItemId::new(idx as u32)); + items.push(ItemId::Client(loc)); + } + + // Intern tests + for (idx, _test) in tree.tests.iter().enumerate() { + let loc = TestLoc::new(db, file, LocalItemId::new(idx as u32)); + items.push(ItemId::Test(loc)); + } - // This is a stub - real implementation would check item names - None + items } -/// Tracked struct for function definitions -#[salsa::tracked] -pub struct FunctionDef<'db> { - pub name: Name, +// +// ──────────────────────────────────────────────────────── ITEM LOOKUP ───── +// - #[returns(ref)] - pub params: Vec, +// Note: With the Index implementations on ItemTree, you can now use: +// let item_tree = file_item_tree(db, source_file); +// let func = &item_tree[func_id.id(db)]; +// +// The old lookup helper functions are removed in favor of direct indexing. + +// +// ──────────────────────────────────────────────────── CST → HIR LOWERING ───── +// - pub return_type: TypeRef, +/// Lower a syntax tree into an `ItemTree`. +/// +/// This is the main extraction logic that walks the CST and builds +/// position-independent item representations. +fn lower_file(root: &SyntaxNode) -> ItemTree { + let mut tree = ItemTree::new(); + + // Walk only direct children of the root (top-level items) + // Don't use descendants() because that would pick up nested items like + // CLIENT_DEF nodes inside function bodies + for child in root.children() { + lower_item(&mut tree, &child); + } + + tree } -/// Tracked struct for class definitions -#[salsa::tracked] -pub struct ClassDef<'db> { - pub name: Name, +/// Lower a single item from the CST. +fn lower_item(tree: &mut ItemTree, node: &SyntaxNode) { + use baml_syntax::SyntaxKind; - #[returns(ref)] - pub fields: Vec, + match node.kind() { + SyntaxKind::CLASS_DEF => { + if let Some(class) = lower_class(node) { + tree.alloc_class(class); + } + } + SyntaxKind::ENUM_DEF => { + if let Some(enum_def) = lower_enum(node) { + tree.alloc_enum(enum_def); + } + } + SyntaxKind::FUNCTION_DEF => { + if let Some(func) = lower_function(node) { + tree.alloc_function(func); + } + } + SyntaxKind::TYPE_ALIAS_DEF => { + if let Some(alias) = lower_type_alias(node) { + tree.alloc_type_alias(alias); + } + } + SyntaxKind::CLIENT_DEF => { + if let Some(client) = lower_client(node) { + tree.alloc_client(client); + } + } + SyntaxKind::TEST_DEF => { + if let Some(test) = lower_test(node) { + tree.alloc_test(test); + } + } + _ => { + // Skip other nodes (whitespace, comments, etc.) + } + } +} + +/// Extract class definition from CST. +fn lower_class(node: &SyntaxNode) -> Option { + use baml_syntax::ast::ClassDef; + + let class = ClassDef::cast(node.clone())?; + let name = class.name()?.text().into(); + let mut fields = Vec::new(); + + // Extract fields + for field_node in class.fields() { + if let Some(field_name) = field_node.name() { + let type_ref = field_node + .ty() + .map(|t| lower_type_ref(&t)) + .unwrap_or(TypeRef::Unknown); + + fields.push(crate::Field { + name: field_name.text().into(), + type_ref, + }); + } + } + + // Check for @@dynamic attribute + let is_dynamic = class + .block_attributes() + .any(|attr| attr.syntax().text().to_string().contains("dynamic")); + + Some(Class { + name, + fields, + is_dynamic, + type_params: vec![], // TODO: Extract type parameters + }) } -/// Helper to get function data (for compatibility) -pub fn function_data(_db: &dyn salsa::Database, _func: FunctionId) -> FunctionData { - // TODO: Convert from tracked struct to data - FunctionData { - name: Name::new("stub"), - params: vec![], - return_type: TypeRef::Unknown, +/// Extract enum definition from CST. +fn lower_enum(node: &SyntaxNode) -> Option { + use baml_syntax::ast::{EnumDef, EnumVariant}; + + let enum_def = EnumDef::cast(node.clone())?; + + // Check if the enum has proper structure (braces) + // Malformed enums from error recovery (e.g., "enum" without name/braces) should be skipped + let has_braces = enum_def + .syntax() + .children_with_tokens() + .filter_map(rowan::NodeOrToken::into_token) + .any(|t| t.kind() == baml_syntax::SyntaxKind::L_BRACE); + + if !has_braces { + return None; } + + // Extract name manually (EnumDef doesn't have accessor methods yet) + // Pattern: enum { ... } + // The name is the first WORD token after the "enum" keyword + let name = enum_def + .syntax() + .children_with_tokens() + .filter_map(rowan::NodeOrToken::into_token) + .find(|token| token.kind() == baml_syntax::SyntaxKind::WORD) // Get the first WORD (which is the name, not "enum" - enum is KW_ENUM) + .map(|t| Name::new(t.text())) + .unwrap_or_else(|| Name::new("UnnamedEnum")); + + // Extract variants + let mut variants = Vec::new(); + for child in enum_def.syntax().children() { + if let Some(variant_node) = EnumVariant::cast(child) { + // Get the variant name (first WORD token in the variant) + if let Some(name_token) = variant_node + .syntax() + .children_with_tokens() + .filter_map(rowan::NodeOrToken::into_token) + .find(|t| t.kind() == baml_syntax::SyntaxKind::WORD) + { + variants.push(crate::EnumVariant { + name: Name::new(name_token.text()), + }); + } + } + } + + Some(Enum { + name, + variants, + type_params: vec![], + }) } -/// Helper to get class data (for compatibility) -pub fn class_data(_db: &dyn salsa::Database, _class: ClassId) -> ClassData { - // TODO: Convert from tracked struct to data - ClassData { - name: Name::new("stub"), - fields: vec![], +/// Extract function definition from CST. +fn lower_function(node: &SyntaxNode) -> Option { + use baml_syntax::ast::FunctionDef; + + let func = FunctionDef::cast(node.clone())?; + let name = func.name()?.text().into(); + + // TODO: Extract parameters, return type, client once AST has methods + let params = vec![]; + let return_type = TypeRef::Unknown; + let client_ref = None; + + Some(Function { + name, + params, + return_type, + client_ref, + type_params: vec![], + }) +} + +/// Extract type alias from CST. +fn lower_type_alias(node: &SyntaxNode) -> Option { + use baml_syntax::ast::TypeAliasDef; + + let _alias = TypeAliasDef::cast(node.clone())?; + // TODO: Extract name and type once AST has methods + let name = Name::new("TypeAlias"); + let type_ref = TypeRef::Unknown; + + Some(TypeAlias { + name, + type_ref, + type_params: vec![], + }) +} + +/// Extract client configuration from CST. +fn lower_client(node: &SyntaxNode) -> Option { + use baml_syntax::ast::{ClientDef, ConfigItem}; + + let client_def = ClientDef::cast(node.clone())?; + + // Extract name manually (ClientDef doesn't have accessor methods yet) + // Pattern: client { ... } + // The name is the first WORD token ("client" is KW_CLIENT, not WORD) + let name = client_def + .syntax() + .children_with_tokens() + .filter_map(rowan::NodeOrToken::into_token) + .find(|token| token.kind() == baml_syntax::SyntaxKind::WORD) // Get the first WORD (the name) + .map(|t| Name::new(t.text())) + .unwrap_or_else(|| Name::new("UnnamedClient")); + + // Extract provider from config block + // Pattern: provider + let provider = client_def + .syntax() + .descendants() + .filter_map(ConfigItem::cast) + .find_map(|item| { + let text = item.syntax().text().to_string(); + if text.trim().starts_with("provider") { + // Extract the provider name after "provider" + item.syntax() + .children_with_tokens() + .filter_map(rowan::NodeOrToken::into_token) + .filter(|t| t.kind() == baml_syntax::SyntaxKind::WORD) + .nth(1) // Skip "provider" keyword + .map(|t| Name::new(t.text())) + } else { + None + } + }) + .unwrap_or_else(|| Name::new("unknown")); + + Some(Client { name, provider }) +} + +/// Extract test definition from CST. +fn lower_test(node: &SyntaxNode) -> Option { + use baml_syntax::ast::TestDef; + + let _test = TestDef::cast(node.clone())?; + // TODO: Extract name and functions once AST has methods + let name = Name::new("Test"); + let function_refs = vec![]; + + Some(Test { + name, + function_refs, + }) +} + +/// Lower a type reference from CST. +/// +/// For now, this is a simplified implementation that extracts just the name. +/// TODO: Parse complex types (optional, list, union, etc.) +fn lower_type_ref(node: &baml_syntax::ast::TypeExpr) -> TypeRef { + // For now, just extract the text representation + // This is a simplification - we'll enhance this later + let text = node.syntax().text().to_string(); + let text = text.trim(); + + // Handle primitives + match text { + "int" => TypeRef::Int, + "float" => TypeRef::Float, + "string" => TypeRef::String, + "bool" => TypeRef::Bool, + "null" => TypeRef::Null, + "image" => TypeRef::Image, + "audio" => TypeRef::Audio, + "video" => TypeRef::Video, + "pdf" => TypeRef::Pdf, + _ => { + // Check if it ends with '?' (optional) + if let Some(inner_text) = text.strip_suffix('?') { + let inner = TypeRef::named(inner_text.into()); + TypeRef::optional(inner) + } + // Check if it ends with '[]' (list) + else if let Some(inner_text) = text.strip_suffix("[]") { + let inner = TypeRef::named(inner_text.into()); + TypeRef::list(inner) + } + // Otherwise treat as named type + else { + TypeRef::named(text.into()) + } + } } } diff --git a/baml_language/crates/baml_hir/src/loc.rs b/baml_language/crates/baml_hir/src/loc.rs new file mode 100644 index 0000000000..5186fe8318 --- /dev/null +++ b/baml_language/crates/baml_hir/src/loc.rs @@ -0,0 +1,75 @@ +//! Location types for interning. +//! +//! Each location uniquely identifies where an item is defined: +//! - File (current implementation) +//! - Position within that file's `ItemTree` +//! +//! These locations are interned by Salsa to produce compact, stable IDs. +//! +//! Note: We use `FileId` directly instead of `ContainerId` for now to avoid +//! Salsa complications with non-Copy enums. When we add modules, we'll +//! need to refactor this. + +use crate::ids::LocalItemId; +use baml_base::FileId; + +/// Marker types for different item kinds in the `ItemTree`. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct FunctionMarker; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct ClassMarker; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct EnumMarker; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct TypeAliasMarker; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct ClientMarker; +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct TestMarker; + +/// Location of a function in the source code. +/// +/// This gets interned by Salsa to produce a `FunctionId`. +#[salsa::interned] +pub struct FunctionLoc { + /// File containing this function. + pub file: FileId, + + /// Index in the file's ItemTree. + pub id: LocalItemId, +} + +/// Location of a class definition. +#[salsa::interned] +pub struct ClassLoc { + pub file: FileId, + pub id: LocalItemId, +} + +/// Location of an enum definition. +#[salsa::interned] +pub struct EnumLoc { + pub file: FileId, + pub id: LocalItemId, +} + +/// Location of a type alias. +#[salsa::interned] +pub struct TypeAliasLoc { + pub file: FileId, + pub id: LocalItemId, +} + +/// Location of a client configuration. +#[salsa::interned] +pub struct ClientLoc { + pub file: FileId, + pub id: LocalItemId, +} + +/// Location of a test definition. +#[salsa::interned] +pub struct TestLoc { + pub file: FileId, + pub id: LocalItemId, +} diff --git a/baml_language/crates/baml_hir/src/path.rs b/baml_language/crates/baml_hir/src/path.rs new file mode 100644 index 0000000000..25b8bc2328 --- /dev/null +++ b/baml_language/crates/baml_hir/src/path.rs @@ -0,0 +1,75 @@ +//! Path representation for name resolution. +//! +//! Paths allow referencing items across module boundaries (future feature). +//! Today: All paths are single-segment (e.g., "User") +//! Future: Multi-segment paths (e.g., "`users::User`") + +use baml_base::Name; + +/// A path to an item (`foo::bar::Baz`). +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct Path { + /// Path segments (`["foo", "bar", "Baz"]`). + pub segments: Vec, + + /// Path kind (absolute vs relative). + pub kind: PathKind, +} + +/// The kind of path resolution. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum PathKind { + /// Relative path (`foo::bar`). + /// Resolved relative to current scope. + Plain, + + /// Absolute path (`::foo::bar`) (future feature). + /// Resolved from project root. + #[allow(dead_code)] + Absolute, + + /// Super path (`super::foo`) (future feature). + /// Resolved relative to parent module. + #[allow(dead_code)] + Super { count: u32 }, +} + +impl Path { + /// Create a simple single-segment path. + pub fn single(name: Name) -> Self { + Path { + segments: vec![name], + kind: PathKind::Plain, + } + } + + /// Create a multi-segment path (future feature). + #[allow(dead_code)] + pub fn new(segments: Vec) -> Self { + Path { + segments, + kind: PathKind::Plain, + } + } + + /// Check if this is a simple name (no :: separators). + pub fn is_simple(&self) -> bool { + self.segments.len() == 1 && self.kind == PathKind::Plain + } + + /// Get the final segment (the item name). + pub fn last_segment(&self) -> Option<&Name> { + self.segments.last() + } + + /// Get the first segment. + pub fn first_segment(&self) -> Option<&Name> { + self.segments.first() + } +} + +impl From for Path { + fn from(name: Name) -> Self { + Path::single(name) + } +} diff --git a/baml_language/crates/baml_hir/src/type_ref.rs b/baml_language/crates/baml_hir/src/type_ref.rs new file mode 100644 index 0000000000..bf38805a01 --- /dev/null +++ b/baml_language/crates/baml_hir/src/type_ref.rs @@ -0,0 +1,84 @@ +//! Unresolved type references in the HIR. +//! +//! These are type references before name resolution. +//! `TypeRef` -> Ty happens during THIR construction. + +use crate::path::Path; +use baml_base::Name; + +/// A type reference before name resolution. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub enum TypeRef { + /// Named type (with path for future module support). + /// Examples: + /// `Path::single("User`") -> User + /// `Path::new`(`["users", "User"]`) -> `users::User` (future) + Path(Path), + + /// Primitive types (no resolution needed). + Int, + Float, + String, + Bool, + Null, + Image, + Audio, + Video, + Pdf, + + /// Type constructors. + Optional(Box), + List(Box), + Map { + key: Box, + value: Box, + }, + Union(Vec), + + /// Literal types in unions. + StringLiteral(String), + IntLiteral(i64), + /// Float literal stored as string to avoid f64's lack of Eq/Hash. + FloatLiteral(String), + + /// Future: Generic type application. + /// Example: Result + #[allow(dead_code)] + Generic { + base: Box, + args: Vec, + }, + + /// Future: Type parameter reference. + /// Example: T in function(x: T) -> T + #[allow(dead_code)] + TypeParam(Name), + + /// Error sentinel. + Error, + + /// Unknown/inferred. + Unknown, +} + +impl TypeRef { + /// Create a simple named type reference. + pub fn named(name: Name) -> Self { + TypeRef::Path(Path::single(name)) + } + + /// Create an optional type. + pub fn optional(inner: TypeRef) -> Self { + TypeRef::Optional(Box::new(inner)) + } + + /// Create a list type. + pub fn list(inner: TypeRef) -> Self { + TypeRef::List(Box::new(inner)) + } + + /// Create a union type. + pub fn union(types: Vec) -> Self { + TypeRef::Union(types) + } +} diff --git a/baml_language/crates/baml_onionskin/src/compiler.rs b/baml_language/crates/baml_onionskin/src/compiler.rs index 2d7d44abf7..a8bcf17dbb 100644 --- a/baml_language/crates/baml_onionskin/src/compiler.rs +++ b/baml_language/crates/baml_onionskin/src/compiler.rs @@ -466,7 +466,8 @@ impl CompilerRunner { let file_path = path.display().to_string(); // Use real baml_hir for item extraction - let items = baml_hir::file_items(&self.db, *source_file); + let items_struct = baml_hir::file_items(&self.db, *source_file); + let items = items_struct.items(&self.db); // Check if THIS specific file was modified let file_recomputed = self.modified_files.contains(path); @@ -476,7 +477,7 @@ impl CompilerRunner { // Show real HIR items if !items.is_empty() { - for item in &items { + for item in items { let item_line = format!(" {item:?}"); writeln!(output, "{item_line}").ok(); output_annotated.push(( diff --git a/baml_language/crates/baml_parser/src/parser.rs b/baml_language/crates/baml_parser/src/parser.rs index 48443d413a..3610113e51 100644 --- a/baml_language/crates/baml_parser/src/parser.rs +++ b/baml_language/crates/baml_parser/src/parser.rs @@ -1066,11 +1066,15 @@ impl<'a> Parser<'a> { p.error("Expected parameter name".to_string()); } - // Type annotation + // Type annotation - supports both "name: type" and "name type" syntax if p.eat(TokenKind::Colon) { + // With colon: "name: type" + p.parse_type(); + } else if p.at(TokenKind::Word) { + // Without colon: "name type" (whitespace-separated) p.parse_type(); } else { - p.error("Expected type annotation (:)".to_string()); + p.error("Expected type annotation".to_string()); } }); } @@ -1457,15 +1461,17 @@ impl<'a> Parser<'a> { // Object literal/constructor // Check if we have a preceding expression (constructor name/expression) // by checking if we've emitted any events since expr_start - if self.events.len() > expr_start { - // We have a preceding expression, treat as object literal/constructor + if self.events.len() > expr_start && self.looks_like_object_constructor() { + // We have a preceding expression that looks like a type/constructor, + // treat as object literal/constructor let lhs_start = self.find_previous_expr_start_after(expr_start); self.wrap_events_in_node(lhs_start, SyntaxKind::OBJECT_LITERAL); self.parse_object_literal_body(); self.finish_node(); } else { - // No preceding expression, this is a block expression - // Break and let parse_primary_expr handle it + // No preceding expression, or preceding expression doesn't look like + // a constructor (e.g., it's a literal or binary expression) + // Don't consume the brace - it's likely a block/body for an outer construct break; } } else if let Some((left_bp, right_bp)) = Self::infix_binding_power(op) { @@ -1521,6 +1527,48 @@ impl<'a> Parser<'a> { min_index } + /// Check if the most recent expression looks like a constructor/type name + /// that can be followed by `{` for object literal construction. + /// + /// Returns true for: + /// - Simple identifiers (e.g., `Point`) + /// - Path expressions (e.g., `module.Type` for future module support) + /// + /// Returns false for everything else: + /// - Literals (e.g., `18`, `"string"`) + /// - Binary expressions (e.g., `a < b`) + /// - Function calls (e.g., `func()`) + /// - Any other complex expression + fn looks_like_object_constructor(&self) -> bool { + // Walk backward to find the most recent complete expression + let mut depth = 0; + for event in self.events.iter().rev() { + match event { + Event::FinishNode => depth += 1, + Event::StartNode { kind } => { + depth -= 1; + if depth == 0 { + // We just closed a complete expression + // Allow PATH_EXPR or FIELD_ACCESS_EXPR for module-qualified types + return matches!( + kind, + SyntaxKind::PATH_EXPR | SyntaxKind::FIELD_ACCESS_EXPR + ); + } + } + Event::Token { kind, .. } => { + if depth == 0 { + // The most recent thing is a bare token (no wrapping node) + // Only WORD tokens can be type names + return *kind == SyntaxKind::WORD; + } + } + Event::Error { .. } => {} + } + } + false + } + /// Wrap events from `start_index` onwards in a new node /// This allows us to retroactively wrap parsed expressions. /// diff --git a/baml_language/crates/baml_syntax/src/ast.rs b/baml_language/crates/baml_syntax/src/ast.rs index 3e7cecb473..9d06bfa3c8 100644 --- a/baml_language/crates/baml_syntax/src/ast.rs +++ b/baml_language/crates/baml_syntax/src/ast.rs @@ -93,7 +93,7 @@ impl FunctionDef { .filter(|token| { token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) }) - .nth(1) // Skip the "function" keyword, get the second WORD + .nth(0) // Get the first WORD (function keyword is KW_FUNCTION, not WORD) } /// Get the parameter list. @@ -148,7 +148,7 @@ impl ClassDef { .filter(|token| { token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) }) - .nth(1) // Skip the "class" keyword, get the second WORD + .nth(0) // Get the first WORD (class keyword is KW_CLASS, not WORD) } /// Get all fields. diff --git a/baml_language/crates/baml_syntax/src/builder.rs b/baml_language/crates/baml_syntax/src/builder.rs index 54e2193114..e96ff4de27 100644 --- a/baml_language/crates/baml_syntax/src/builder.rs +++ b/baml_language/crates/baml_syntax/src/builder.rs @@ -56,7 +56,7 @@ impl SyntaxTreeBuilder { builder.start_node(SyntaxKind::FUNCTION_DEF); // function keyword - builder.token(SyntaxKind::WORD, "function"); + builder.token(SyntaxKind::KW_FUNCTION, "function"); builder.ws(" "); // function name @@ -120,7 +120,7 @@ impl SyntaxTreeBuilder { builder.start_node(SyntaxKind::CLASS_DEF); // class keyword - builder.token(SyntaxKind::WORD, "class"); + builder.token(SyntaxKind::KW_CLASS, "class"); builder.ws(" "); // class name diff --git a/baml_language/crates/baml_tests/build.rs b/baml_language/crates/baml_tests/build.rs index 5b5c5fa590..32d8b1cd90 100644 --- a/baml_language/crates/baml_tests/build.rs +++ b/baml_language/crates/baml_tests/build.rs @@ -390,13 +390,14 @@ fn generate_hir_test(file: &mut File, project: &TestProject) -> std::io::Result< writeln!(file, " #[test]")?; writeln!(file, " fn test_03_hir() {{")?; writeln!(file, " let mut db = RootDatabase::new();")?; + writeln!(file, " let mut output = String::new();")?; writeln!( file, - " let root = db.set_project_root(std::path::PathBuf::from(\".\"));" + " writeln!(output, \"=== HIR ITEMS ===\").unwrap();" )?; writeln!(file)?; - // Load all files + // Load all files and format items per file for baml_file in &project.files { writeln!(file, " {{")?; writeln!( @@ -408,7 +409,7 @@ fn generate_hir_test(file: &mut File, project: &TestProject) -> std::io::Result< file, " let content = content.replace(\"\\r\\n\", \"\\n\");" )?; - writeln!(file, " db.add_file(")?; + writeln!(file, " let source_file = db.add_file(")?; writeln!( file, " \"{}\",", @@ -416,31 +417,27 @@ fn generate_hir_test(file: &mut File, project: &TestProject) -> std::io::Result< )?; writeln!(file, " &content,")?; writeln!(file, " );")?; + writeln!( + file, + " let items_struct = baml_hir::file_items(&db, source_file);" + )?; + writeln!(file, " let items = items_struct.items(&db);")?; + writeln!(file, " if !items.is_empty() {{")?; + writeln!( + file, + " let formatted = crate::format_hir_file(&db, source_file, items);" + )?; + writeln!(file, " output.push_str(&formatted);")?; + writeln!(file, " }}")?; writeln!(file, " }}")?; } writeln!(file)?; - writeln!( - file, - " let items = baml_hir::project_items(&db, root);" - )?; - writeln!(file, " let mut output = String::new();")?; - writeln!( - file, - " writeln!(output, \"=== HIR ITEMS ===\").unwrap();" - )?; - writeln!(file, " if items.is_empty() {{")?; + writeln!(file, " if output.trim() == \"=== HIR ITEMS ===\" {{")?; writeln!( file, " writeln!(output, \"No items found.\").unwrap();" )?; - writeln!(file, " }} else {{")?; - writeln!(file, " for item in items.iter() {{")?; - writeln!( - file, - " writeln!(output, \" {{:?}}\", item).unwrap();" - )?; - writeln!(file, " }}")?; writeln!(file, " }}")?; writeln!(file)?; writeln!( @@ -491,8 +488,9 @@ fn generate_thir_test(file: &mut File, project: &TestProject) -> std::io::Result writeln!(file)?; writeln!( file, - " let items = baml_hir::project_items(&db, root);" + " let items_struct = baml_hir::project_items(&db, root);" )?; + writeln!(file, " let items = items_struct.items(&db);")?; writeln!(file, " let mut output = String::new();")?; writeln!( file, @@ -506,7 +504,7 @@ fn generate_thir_test(file: &mut File, project: &TestProject) -> std::io::Result )?; writeln!( file, - " let result = baml_thir::infer_function(&db, func_id.clone());" + " let result = baml_thir::infer_function(&db, *func_id);" )?; writeln!( file, diff --git a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap index 4254c4f0e6..37e85a725b 100644 --- a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap @@ -1,6 +1,20 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function GetUser { + return_type: Unknown +} +function GetStatus { + return_type: Unknown +} +class User { + id: Int + name: String + email: String +} +enum Status { + EnumVariant { name: "Active" } + EnumVariant { name: "Inactive" } +} diff --git a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap index 4254c4f0e6..bdd782d599 100644 --- a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap @@ -1,6 +1,9 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +class Broken { + field: Int + Invalid: Path(Path { segments: ["()"], kind: Plain }) +} diff --git a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__02_parser__fetch_as.snap b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__02_parser__fetch_as.snap index 55dd300a84..64e968a63e 100644 --- a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__02_parser__fetch_as.snap +++ b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__02_parser__fetch_as.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 564 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === diff --git a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap index 78ab5579a4..831d8468f4 100644 --- a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap @@ -3,4 +3,12 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function GetTodo { + return_type: Unknown +} +class Todo { + id: Int + title: String + completed: Bool + userId: Int +} diff --git a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__05_diagnostics.snap index d3639e7656..555b982606 100644 --- a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__05_diagnostics.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 665 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === diff --git a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap index 78ab5579a4..6063602916 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap @@ -3,4 +3,48 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function stringArray { + return_type: Unknown +} +function intArray { + return_type: Unknown +} +function floatArray { + return_type: Unknown +} +function boolArray { + return_type: Unknown +} +function pointArray { + return_type: Unknown +} +class Point { + x: Int + y: Int +} +function point { + return_type: Unknown +} +function vec2d { + return_type: Unknown +} +class Point { + x: Int + y: Int +} +class Vec2D { + p: Path(Path { segments: ["Point"], kind: Plain }) + q: Path(Path { segments: ["Point"], kind: Plain }) +} +function stringValues { + return_type: Unknown +} +function intValues { + return_type: Unknown +} +function floatValues { + return_type: Unknown +} +function boolValues { + return_type: Unknown +} diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap index d7183850fe..99e05ac066 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 1431 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -44,10 +43,10 @@ SOURCE_FILE WORD "Incomplete" PARAMETER_LIST L_PAREN "(" - PARAMETER " // Missing parameters closing - param1" + PARAMETER WORD "param1" - WORD "string" + TYPE_EXPR " string" + WORD "string" FUNCTION_DEF KW_FUNCTION "function" WORD "NextFunction" @@ -92,11 +91,9 @@ enum // Missing enum name Expected Expected type, found Expected type Expected Expected RParen, found Word, found Expected RParen, found Word Expected Expected type, found Expected type - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word + Expected Expected RParen, found Function, found Expected RParen, found Function Expected Expected return type (->), found Expected return type (->) Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration Expected Expected LBrace, found Word, found Expected LBrace, found Word Expected Expected top-level declaration, found Expected top-level declaration Expected Expected top-level declaration, found Expected top-level declaration diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap index 4254c4f0e6..915f7b1533 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap @@ -1,6 +1,41 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function Foo { + return_type: Unknown +} +enum Status { + EnumVariant { name: "ACTIVE" } + EnumVariant { name: "INACTIVE" } + EnumVariant { name: "PENDING" } +} +class User { + name: String + Another: Path(Path { segments: [""], kind: Plain }) + field: Int +} +function Incomplete { + return_type: Unknown +} +function NextFunction { + return_type: Unknown +} +class Partial { + field1: Path(Path { segments: ["str"], kind: Plain }) + field2: Path(Path { segments: ["// Missing type entirely\n field3"], kind: Plain }) + string: Path(Path { segments: [""], kind: Plain }) + string: Path(Path { segments: [""], kind: Plain }) + string: Path(Path { segments: [""], kind: Plain }) +} +enum ValidEnum { + EnumVariant { name: "OPTION1" } + EnumVariant { name: "OPTION2" } +} +class Test { + field1: String + field2: String + another: Path(Path { segments: ["closed"], kind: Plain }) + string: Path(Path { segments: ["\") // Should still parse this\n}"], kind: Plain }) +} diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap index bb8707d633..0ff650ee8c 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 1646 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === @@ -21,11 +20,9 @@ expression: output [parse] Expected Expected type, found Expected type [parse] Expected Expected RParen, found Word, found Expected RParen, found Word [parse] Expected Expected type, found Expected type - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word + [parse] Expected Expected RParen, found Function, found Expected RParen, found Function [parse] Expected Expected return type (->), found Expected return type (->) [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected LBrace, found Word, found Expected LBrace, found Word [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__if_expressions.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__if_expressions.snap index cceb377e65..b6a12a6e22 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__if_expressions.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__if_expressions.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2076 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -10,79 +9,59 @@ SOURCE_FILE WORD "ConditionalLogic" PARAMETER_LIST L_PAREN "(" - PARAMETER "age" + PARAMETER WORD "age" - WORD "int" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - KW_IF "if" - WORD "age" - LESS "<" - INTEGER_LITERAL "18" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "minor" - QUOTE """ - R_BRACE "}" - KW_ELSE "else" - KW_IF "if" - WORD "age" - LESS "<" - INTEGER_LITERAL "65" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "adult" - QUOTE """ - R_BRACE "}" - KW_ELSE "else" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "senior" - QUOTE """ - R_BRACE "}" - R_BRACE "}" + TYPE_EXPR " int" + WORD "int" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + IF_EXPR + KW_IF "if" + BINARY_EXPR "age < 18" + WORD "age" + LESS "<" + INTEGER_LITERAL "18" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + STRING_LITERAL " "minor"" + QUOTE """ + WORD "minor" + QUOTE """ + R_BRACE "}" + KW_ELSE "else" + IF_EXPR + KW_IF "if" + BINARY_EXPR "age < 65" + WORD "age" + LESS "<" + INTEGER_LITERAL "65" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + STRING_LITERAL " "adult"" + QUOTE """ + WORD "adult" + QUOTE """ + R_BRACE "}" + KW_ELSE "else" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + STRING_LITERAL " "senior"" + QUOTE """ + WORD "senior" + QUOTE """ + R_BRACE "}" + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap index e75445788b..30a8db9c44 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2103 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -27,198 +26,193 @@ SOURCE_FILE WORD "HandleStatus" PARAMETER_LIST L_PAREN "(" - PARAMETER "status" + PARAMETER WORD "status" - WORD "Status" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - WORD "match" - WORD "status" - L_BRACE "{" - WORD "Status" - DOUBLE_COLON "::" - WORD "PENDING" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "Waiting" - KW_FOR "for" - WORD "approval" - QUOTE """ - WORD "Status" - DOUBLE_COLON "::" - WORD "ACTIVE" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "Currently" - WORD "active" - QUOTE """ - WORD "Status" - DOUBLE_COLON "::" - WORD "INACTIVE" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "Not" - WORD "active" - QUOTE """ - WORD "Status" - DOUBLE_COLON "::" - WORD "SUSPENDED" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "Temporarily" - WORD "suspended" - QUOTE """ - R_BRACE "}" - R_BRACE "}" + TYPE_EXPR " Status" + WORD "Status" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + WORD "match" + OBJECT_LITERAL + WORD "status" + L_BRACE "{" + OBJECT_FIELD " + Status" + WORD "Status" + DOUBLE_COLON "::" + OBJECT_FIELD "PENDING" + WORD "PENDING" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "Waiting for approval"" + QUOTE """ + WORD "Waiting" + KW_FOR "for" + WORD "approval" + QUOTE """ + OBJECT_FIELD " + Status" + WORD "Status" + DOUBLE_COLON "::" + OBJECT_FIELD "ACTIVE" + WORD "ACTIVE" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "Currently active"" + QUOTE """ + WORD "Currently" + WORD "active" + QUOTE """ + OBJECT_FIELD " + Status" + WORD "Status" + DOUBLE_COLON "::" + OBJECT_FIELD "INACTIVE" + WORD "INACTIVE" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "Not active"" + QUOTE """ + WORD "Not" + WORD "active" + QUOTE """ + OBJECT_FIELD " + Status" + WORD "Status" + DOUBLE_COLON "::" + OBJECT_FIELD "SUSPENDED" + WORD "SUSPENDED" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "Temporarily suspended"" + QUOTE """ + WORD "Temporarily" + WORD "suspended" + QUOTE """ + R_BRACE "}" + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "ComplexMatch" PARAMETER_LIST L_PAREN "(" - PARAMETER "value" + PARAMETER WORD "value" - WORD "int" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - WORD "match" - WORD "value" - L_BRACE "{" - INTEGER_LITERAL "0" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "zero" - QUOTE """ - INTEGER_LITERAL "1" - PIPE "|" - INTEGER_LITERAL "2" - PIPE "|" - INTEGER_LITERAL "3" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "small" - QUOTE """ - INTEGER_LITERAL "4" - DOT "." - DOT "." - INTEGER_LITERAL "10" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "medium" - QUOTE """ - WORD "_" - EQUALS "=" - GREATER ">" - QUOTE """ - WORD "large" - QUOTE """ - R_BRACE "}" - R_BRACE "}" + TYPE_EXPR " int" + WORD "int" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + WORD "match" + OBJECT_LITERAL + WORD "value" + L_BRACE "{" + INTEGER_LITERAL "0" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "zero"" + QUOTE """ + WORD "zero" + QUOTE """ + INTEGER_LITERAL "1" + PIPE "|" + INTEGER_LITERAL "2" + PIPE "|" + INTEGER_LITERAL "3" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "small"" + QUOTE """ + WORD "small" + QUOTE """ + INTEGER_LITERAL "4" + DOT "." + DOT "." + INTEGER_LITERAL "10" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "medium"" + QUOTE """ + WORD "medium" + QUOTE """ + OBJECT_FIELD " + _" + WORD "_" + EQUALS "=" + GREATER ">" + OBJECT_FIELD + STRING_LITERAL " "large"" + QUOTE """ + WORD "large" + QUOTE """ + R_BRACE "}" + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration + Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found Equals, found Expected Colon, found Equals + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found Word, found Expected Colon, found Word + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found Equals, found Expected Colon, found Equals + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found Word, found Expected Colon, found Word + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found Equals, found Expected Colon, found Equals + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found Word, found Expected Colon, found Word + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found Equals, found Expected Colon, found Equals + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found RBrace, found Expected Colon, found RBrace + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found Word, found Expected Colon, found Word + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected Colon, found Equals, found Expected Colon, found Equals + Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + Expected Expected field name or '}', found Expected field name or '}' + Expected Expected Colon, found RBrace, found Expected Colon, found RBrace diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap index 4254c4f0e6..8a882ba171 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap @@ -1,6 +1,26 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function Calculate { + return_type: Unknown +} +function ConditionalLogic { + return_type: Unknown +} +function HandleStatus { + return_type: Unknown +} +function ComplexMatch { + return_type: Unknown +} +enum Status { + EnumVariant { name: "PENDING" } + EnumVariant { name: "ACTIVE" } + EnumVariant { name: "INACTIVE" } + EnumVariant { name: "SUSPENDED" } +} +function TestPrecedence { + return_type: Unknown +} diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap index 1c5fcde44a..b8354d7ce4 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap @@ -1,140 +1,56 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2318 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration + [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found Word, found Expected Colon, found Word + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found Word, found Expected Colon, found Word + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found Word, found Expected Colon, found Word + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found RBrace, found Expected Colon, found RBrace + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found Word, found Expected Colon, found Word + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals + [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field + [parse] Expected Expected field name or '}', found Expected field name or '}' + [parse] Expected Expected Colon, found RBrace, found Expected Colon, found RBrace diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap index e80aeb1a9f..6c9b2da0ac 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2721 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -10,75 +9,53 @@ SOURCE_FILE WORD "Ambiguous" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " - client GPT4" - KW_CLIENT "client" - WORD "GPT4" - R_BRACE "}" + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR " { + client GPT4 // This keyword determines it's an LLM function + // Even though it starts like it could be expression function +}" + L_BRACE "{" + KW_CLIENT "client" + WORD "GPT4" + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "AnotherLLM" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - WORD "clent" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + WORD "clent" + WORD "GPT4" + WORD "prompt" + STRING_LITERAL " "Process: {{ input }}"" + QUOTE """ + WORD "Process" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration + Expected Expected expression, found Expected expression diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__expr_function.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__expr_function.snap index e80d4fa540..d06fd98fc5 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__expr_function.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__expr_function.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2748 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -23,71 +22,53 @@ SOURCE_FILE WORD "ProcessData" PARAMETER_LIST L_PAREN "(" - PARAMETER "data" + PARAMETER WORD "data" - WORD "JsonData" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - KW_LET "let" - WORD "result" - EQUALS "=" - WORD "data" - DOT "." - WORD "field1" - PLUS "+" - WORD "data" - DOT "." - WORD "field2" - KW_IF "if" - WORD "result" - GREATER ">" - INTEGER_LITERAL "100" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "high" - QUOTE """ - R_BRACE "}" - KW_RETURN "return" - QUOTE """ - WORD "low" - QUOTE """ - R_BRACE "}" + TYPE_EXPR " JsonData" + WORD "JsonData" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "result" + EQUALS "=" + BINARY_EXPR + PATH_EXPR " data.field1" + WORD "data" + DOT "." + WORD "field1" + PLUS "+" + PATH_EXPR " data.field2" + WORD "data" + DOT "." + WORD "field2" + IF_EXPR + KW_IF "if" + BINARY_EXPR "result > 100" + WORD "result" + GREATER ">" + INTEGER_LITERAL "100" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + STRING_LITERAL " "high"" + QUOTE """ + WORD "high" + QUOTE """ + R_BRACE "}" + RETURN_STMT + KW_RETURN "return" + STRING_LITERAL " "low"" + QUOTE """ + WORD "low" + QUOTE """ + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__llm_function.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__llm_function.snap index e6e6b275fe..53fd2807e6 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__llm_function.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__llm_function.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2775 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -10,66 +9,45 @@ SOURCE_FILE WORD "ExtractData" PARAMETER_LIST L_PAREN "(" - PARAMETER "text" + PARAMETER WORD "text" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "JsonData" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " JsonData" + WORD "JsonData" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - HASH "#" - QUOTE """ - WORD "Extract" - WORD "structured" - WORD "data" - WORD "from" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "text" - R_BRACE "}" - R_BRACE "}" - WORD "Return" - WORD "as" - WORD "JSON" - DOT "." - QUOTE """ - HASH "#" - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + RAW_STRING_LITERAL " #" + Extract structured data from: {{ text }} + Return as JSON. + "#" + HASH "#" + QUOTE """ + WORD "Extract" + WORD "structured" + WORD "data" + WORD "from" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "text" + R_BRACE "}" + R_BRACE "}" + WORD "Return" + WORD "as" + WORD "JSON" + DOT "." + QUOTE """ + HASH "#" + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__mixed_functions.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__mixed_functions.snap index 962041313d..2d1be43b48 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__mixed_functions.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__mixed_functions.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2802 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -10,42 +9,52 @@ SOURCE_FILE WORD "LLMAnalyze" PARAMETER_LIST L_PAREN "(" - PARAMETER "text" + PARAMETER WORD "text" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "Analysis" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " Analysis" + WORD "Analysis" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - HASH "#" - QUOTE """ - WORD "Analyze" - WORD "the" - WORD "following" - WORD "text" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "text" - R_BRACE "}" - R_BRACE "}" - WORD "Return" - WORD "an" - WORD "Analysis" - WORD "object" - WORD "with" - WORD "sentiment" - WORD "and" - WORD "keywords" - DOT "." - QUOTE """ - HASH "#" - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + RAW_STRING_LITERAL " #" + Analyze the following text: + {{ text }} + + Return an Analysis object with sentiment and keywords. + "#" + HASH "#" + QUOTE """ + WORD "Analyze" + WORD "the" + WORD "following" + WORD "text" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "text" + R_BRACE "}" + R_BRACE "}" + WORD "Return" + WORD "an" + WORD "Analysis" + WORD "object" + WORD "with" + WORD "sentiment" + WORD "and" + WORD "keywords" + DOT "." + QUOTE """ + HASH "#" + R_BRACE "}" CLASS_DEF KW_CLASS "class" WORD "Analysis" @@ -70,311 +79,196 @@ SOURCE_FILE WORD "ProcessAnalysis" PARAMETER_LIST L_PAREN "(" - PARAMETER "analysis" + PARAMETER WORD "analysis" - WORD "Analysis" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - KW_LET "let" - WORD "score" - EQUALS "=" - WORD "analysis" - DOT "." - WORD "score" - KW_IF "if" - WORD "score" - GREATER ">" - FLOAT_LITERAL "0.8" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "Very" - WORD "positive" - COLON ":" - QUOTE """ - PLUS "+" - WORD "analysis" - DOT "." - WORD "sentiment" - R_BRACE "}" - KW_ELSE "else" - KW_IF "if" - WORD "score" - GREATER ">" - FLOAT_LITERAL "0.5" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "Positive" - COLON ":" - QUOTE """ - PLUS "+" - WORD "analysis" - DOT "." - WORD "sentiment" - R_BRACE "}" - KW_ELSE "else" - KW_IF "if" - WORD "score" - GREATER ">" - FLOAT_LITERAL "0.2" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "Neutral" - COLON ":" - QUOTE """ - PLUS "+" - WORD "analysis" - DOT "." - WORD "sentiment" - R_BRACE "}" - KW_ELSE "else" - L_BRACE "{" - KW_RETURN "return" - QUOTE """ - WORD "Negative" - COLON ":" - QUOTE """ - PLUS "+" - WORD "analysis" - DOT "." - WORD "sentiment" - R_BRACE "}" - R_BRACE "}" + TYPE_EXPR " Analysis" + WORD "Analysis" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "score" + EQUALS "=" + PATH_EXPR " analysis.score" + WORD "analysis" + DOT "." + WORD "score" + IF_EXPR + KW_IF "if" + BINARY_EXPR "score > 0.8" + WORD "score" + GREATER ">" + FLOAT_LITERAL "0.8" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + BINARY_EXPR + STRING_LITERAL " "Very positive: "" + QUOTE """ + WORD "Very" + WORD "positive" + COLON ":" + QUOTE """ + PLUS "+" + PATH_EXPR " analysis.sentiment" + WORD "analysis" + DOT "." + WORD "sentiment" + R_BRACE "}" + KW_ELSE "else" + IF_EXPR + KW_IF "if" + BINARY_EXPR "score > 0.5" + WORD "score" + GREATER ">" + FLOAT_LITERAL "0.5" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + BINARY_EXPR + STRING_LITERAL " "Positive: "" + QUOTE """ + WORD "Positive" + COLON ":" + QUOTE """ + PLUS "+" + PATH_EXPR " analysis.sentiment" + WORD "analysis" + DOT "." + WORD "sentiment" + R_BRACE "}" + KW_ELSE "else" + IF_EXPR + KW_IF "if" + BINARY_EXPR "score > 0.2" + WORD "score" + GREATER ">" + FLOAT_LITERAL "0.2" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + BINARY_EXPR + STRING_LITERAL " "Neutral: "" + QUOTE """ + WORD "Neutral" + COLON ":" + QUOTE """ + PLUS "+" + PATH_EXPR " analysis.sentiment" + WORD "analysis" + DOT "." + WORD "sentiment" + R_BRACE "}" + KW_ELSE "else" + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + BINARY_EXPR + STRING_LITERAL " "Negative: "" + QUOTE """ + WORD "Negative" + COLON ":" + QUOTE """ + PLUS "+" + PATH_EXPR " analysis.sentiment" + WORD "analysis" + DOT "." + WORD "sentiment" + R_BRACE "}" + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "ChainedProcess" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - HASH "#" - QUOTE """ - WORD "Process" - WORD "this" - WORD "through" - WORD "multiple" - WORD "steps" - COLON ":" - INTEGER_LITERAL "1" - DOT "." - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - INTEGER_LITERAL "2" - DOT "." - WORD "Transform" - WORD "it" - INTEGER_LITERAL "3" - DOT "." - WORD "Return" - WORD "result" - QUOTE """ - HASH "#" - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + RAW_STRING_LITERAL " #" + Process this through multiple steps: + 1. {{ input }} + 2. Transform it + 3. Return result + "#" + HASH "#" + QUOTE """ + WORD "Process" + WORD "this" + WORD "through" + WORD "multiple" + WORD "steps" + COLON ":" + INTEGER_LITERAL "1" + DOT "." + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + INTEGER_LITERAL "2" + DOT "." + WORD "Transform" + WORD "it" + INTEGER_LITERAL "3" + DOT "." + WORD "Return" + WORD "result" + QUOTE """ + HASH "#" + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "SimpleCalc" PARAMETER_LIST L_PAREN "(" - PARAMETER "a" + PARAMETER WORD "a" - WORD "int" - COMMA "," - WORD "b" - WORD "int" - R_PAREN ")" - ARROW "->" - WORD "int" - L_BRACE "{" - KW_RETURN "return" - WORD "a" - PLUS "+" - WORD "b" - STAR "*" - INTEGER_LITERAL "2" - R_BRACE "}" + TYPE_EXPR " int" + WORD "int" + COMMA "," + PARAMETER + WORD "b" + TYPE_EXPR " int" + WORD "int" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " int" + WORD "int" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + RETURN_STMT + KW_RETURN "return" + BINARY_EXPR + WORD "a" + PLUS "+" + BINARY_EXPR "b * 2" + WORD "b" + STAR "*" + INTEGER_LITERAL "2" + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap index 4254c4f0e6..6c6839be6a 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap @@ -1,6 +1,38 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function Ambiguous { + return_type: Unknown +} +function AnotherLLM { + return_type: Unknown +} +function ProcessData { + return_type: Unknown +} +class JsonData { + field1: Int + field2: Int +} +function ExtractData { + return_type: Unknown +} +function LLMAnalyze { + return_type: Unknown +} +function ProcessAnalysis { + return_type: Unknown +} +function ChainedProcess { + return_type: Unknown +} +function SimpleCalc { + return_type: Unknown +} +class Analysis { + sentiment: String + keywords: List(Path(Path { segments: ["string"], kind: Plain })) + score: Float +} diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap index 519985522d..aa1e4546c3 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap @@ -1,269 +1,6 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration + [parse] Expected Expected expression, found Expected expression diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__large_file.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__large_file.snap index ee94532ce2..f92438a320 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__large_file.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__large_file.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 3422 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -41410,5200 +41409,3401 @@ SOURCE_FILE WORD "Process1" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "1" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 1: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "1" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process2" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "2" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 2: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "2" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process3" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "3" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 3: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "3" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process4" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "4" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 4: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "4" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process5" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "5" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 5: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "5" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process6" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "6" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 6: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "6" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process7" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "7" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 7: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "7" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process8" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "8" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 8: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "8" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process9" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "9" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 9: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "9" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process10" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "10" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 10: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "10" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process11" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "11" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 11: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "11" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process12" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "12" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 12: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "12" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process13" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "13" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 13: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "13" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process14" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "14" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 14: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "14" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process15" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "15" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 15: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "15" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process16" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "16" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 16: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "16" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process17" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "17" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 17: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "17" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process18" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "18" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 18: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "18" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process19" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "19" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 19: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "19" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process20" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "20" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 20: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "20" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process21" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "21" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 21: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "21" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process22" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "22" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 22: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "22" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process23" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "23" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 23: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "23" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process24" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "24" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 24: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "24" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process25" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "25" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 25: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "25" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process26" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "26" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 26: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "26" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process27" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "27" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 27: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "27" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process28" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "28" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 28: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "28" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process29" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "29" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 29: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "29" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process30" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "30" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 30: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "30" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process31" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "31" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 31: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "31" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process32" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "32" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 32: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "32" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process33" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "33" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 33: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "33" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process34" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "34" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 34: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "34" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process35" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "35" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 35: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "35" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process36" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "36" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 36: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "36" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process37" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "37" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 37: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "37" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process38" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "38" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 38: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "38" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process39" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "39" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 39: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "39" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process40" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "40" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 40: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "40" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process41" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "41" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 41: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "41" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process42" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "42" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 42: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "42" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process43" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "43" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 43: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "43" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process44" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "44" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 44: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "44" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process45" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "45" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 45: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "45" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process46" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "46" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 46: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "46" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process47" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "47" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 47: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "47" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process48" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "48" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 48: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "48" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process49" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "49" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 49: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "49" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process50" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "50" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 50: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "50" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process51" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "51" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 51: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "51" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process52" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "52" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 52: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "52" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process53" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "53" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 53: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "53" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process54" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "54" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 54: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "54" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process55" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "55" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 55: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "55" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process56" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "56" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 56: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "56" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process57" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "57" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 57: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "57" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process58" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "58" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 58: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "58" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process59" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "59" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 59: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "59" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process60" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "60" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 60: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "60" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process61" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "61" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 61: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "61" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process62" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "62" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 62: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "62" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process63" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "63" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 63: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "63" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process64" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "64" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 64: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "64" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process65" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "65" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 65: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "65" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process66" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "66" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 66: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "66" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process67" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "67" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 67: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "67" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process68" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "68" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 68: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "68" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process69" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "69" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 69: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "69" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process70" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "70" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 70: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "70" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process71" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "71" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 71: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "71" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process72" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "72" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 72: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "72" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process73" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "73" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 73: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "73" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process74" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "74" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 74: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "74" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process75" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "75" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 75: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "75" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process76" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "76" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 76: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "76" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process77" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "77" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 77: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "77" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process78" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "78" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 78: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "78" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process79" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "79" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 79: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "79" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process80" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "80" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 80: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "80" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process81" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "81" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 81: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "81" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process82" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "82" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 82: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "82" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process83" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "83" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 83: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "83" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process84" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "84" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 84: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "84" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process85" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "85" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 85: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "85" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process86" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "86" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 86: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "86" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process87" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "87" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 87: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "87" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process88" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "88" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 88: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "88" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process89" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "89" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 89: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "89" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process90" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "90" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 90: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "90" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process91" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "91" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 91: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "91" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process92" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "92" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 92: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "92" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process93" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "93" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 93: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "93" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process94" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "94" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 94: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "94" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process95" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "95" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 95: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "95" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process96" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "96" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 96: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "96" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process97" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "97" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 97: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "97" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process98" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "98" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 98: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "98" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process99" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "99" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 99: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "99" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "Process100" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - QUOTE """ - WORD "Process" - WORD "input" - INTEGER_LITERAL "100" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + STRING_LITERAL " "Process input 100: {{ input }}"" + QUOTE """ + WORD "Process" + WORD "input" + INTEGER_LITERAL "100" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap index 168ac91272..ac41b0426b 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -25,14 +25,13 @@ SOURCE_FILE SEMICOLON ";" WHILE_STMT KW_WHILE "while" - OBJECT_LITERAL - ERROR_TOKEN "\" + ERROR_TOKEN "\" + BLOCK_EXPR L_BRACE "{" - OBJECT_FIELD " - x" + BINARY_EXPR "x += 1" WORD "x" - PLUS_EQUALS "+=" - INTEGER_LITERAL "1" + PLUS_EQUALS "+=" + INTEGER_LITERAL "1" SEMICOLON ";" R_BRACE "}" R_BRACE "}" @@ -41,8 +40,3 @@ SOURCE_FILE Expected Expected expression, found Expected expression Expected Expected expression, found Expected expression Expected Expected expression, found Expected expression - Expected Expected Colon, found PlusEquals, found Expected Colon, found PlusEquals - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected block after while condition, found Expected block after while condition diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap index 4254c4f0e6..7ab98185dd 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap @@ -1,6 +1,5858 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +class StringTorture { + raw1: String + raw2: String + raw3: String + emoji: String + rtl: String + zalgo: String + long: String +} +function DeepExpression { + return_type: Unknown +} +function ComplexType { + return_type: Unknown +} +class Level5 { + value: String +} +class Level4 { + field: Path(Path { segments: ["Level5"], kind: Plain }) +} +class Level3 { + field: Path(Path { segments: ["Level4"], kind: Plain }) +} +class Level2 { + field: Path(Path { segments: ["Level3"], kind: Plain }) +} +class Level1 { + field: Path(Path { segments: ["Level2"], kind: Plain }) +} +function Process1 { + return_type: Unknown +} +function Process2 { + return_type: Unknown +} +function Process3 { + return_type: Unknown +} +function Process4 { + return_type: Unknown +} +function Process5 { + return_type: Unknown +} +function Process6 { + return_type: Unknown +} +function Process7 { + return_type: Unknown +} +function Process8 { + return_type: Unknown +} +function Process9 { + return_type: Unknown +} +function Process10 { + return_type: Unknown +} +function Process11 { + return_type: Unknown +} +function Process12 { + return_type: Unknown +} +function Process13 { + return_type: Unknown +} +function Process14 { + return_type: Unknown +} +function Process15 { + return_type: Unknown +} +function Process16 { + return_type: Unknown +} +function Process17 { + return_type: Unknown +} +function Process18 { + return_type: Unknown +} +function Process19 { + return_type: Unknown +} +function Process20 { + return_type: Unknown +} +function Process21 { + return_type: Unknown +} +function Process22 { + return_type: Unknown +} +function Process23 { + return_type: Unknown +} +function Process24 { + return_type: Unknown +} +function Process25 { + return_type: Unknown +} +function Process26 { + return_type: Unknown +} +function Process27 { + return_type: Unknown +} +function Process28 { + return_type: Unknown +} +function Process29 { + return_type: Unknown +} +function Process30 { + return_type: Unknown +} +function Process31 { + return_type: Unknown +} +function Process32 { + return_type: Unknown +} +function Process33 { + return_type: Unknown +} +function Process34 { + return_type: Unknown +} +function Process35 { + return_type: Unknown +} +function Process36 { + return_type: Unknown +} +function Process37 { + return_type: Unknown +} +function Process38 { + return_type: Unknown +} +function Process39 { + return_type: Unknown +} +function Process40 { + return_type: Unknown +} +function Process41 { + return_type: Unknown +} +function Process42 { + return_type: Unknown +} +function Process43 { + return_type: Unknown +} +function Process44 { + return_type: Unknown +} +function Process45 { + return_type: Unknown +} +function Process46 { + return_type: Unknown +} +function Process47 { + return_type: Unknown +} +function Process48 { + return_type: Unknown +} +function Process49 { + return_type: Unknown +} +function Process50 { + return_type: Unknown +} +function Process51 { + return_type: Unknown +} +function Process52 { + return_type: Unknown +} +function Process53 { + return_type: Unknown +} +function Process54 { + return_type: Unknown +} +function Process55 { + return_type: Unknown +} +function Process56 { + return_type: Unknown +} +function Process57 { + return_type: Unknown +} +function Process58 { + return_type: Unknown +} +function Process59 { + return_type: Unknown +} +function Process60 { + return_type: Unknown +} +function Process61 { + return_type: Unknown +} +function Process62 { + return_type: Unknown +} +function Process63 { + return_type: Unknown +} +function Process64 { + return_type: Unknown +} +function Process65 { + return_type: Unknown +} +function Process66 { + return_type: Unknown +} +function Process67 { + return_type: Unknown +} +function Process68 { + return_type: Unknown +} +function Process69 { + return_type: Unknown +} +function Process70 { + return_type: Unknown +} +function Process71 { + return_type: Unknown +} +function Process72 { + return_type: Unknown +} +function Process73 { + return_type: Unknown +} +function Process74 { + return_type: Unknown +} +function Process75 { + return_type: Unknown +} +function Process76 { + return_type: Unknown +} +function Process77 { + return_type: Unknown +} +function Process78 { + return_type: Unknown +} +function Process79 { + return_type: Unknown +} +function Process80 { + return_type: Unknown +} +function Process81 { + return_type: Unknown +} +function Process82 { + return_type: Unknown +} +function Process83 { + return_type: Unknown +} +function Process84 { + return_type: Unknown +} +function Process85 { + return_type: Unknown +} +function Process86 { + return_type: Unknown +} +function Process87 { + return_type: Unknown +} +function Process88 { + return_type: Unknown +} +function Process89 { + return_type: Unknown +} +function Process90 { + return_type: Unknown +} +function Process91 { + return_type: Unknown +} +function Process92 { + return_type: Unknown +} +function Process93 { + return_type: Unknown +} +function Process94 { + return_type: Unknown +} +function Process95 { + return_type: Unknown +} +function Process96 { + return_type: Unknown +} +function Process97 { + return_type: Unknown +} +function Process98 { + return_type: Unknown +} +function Process99 { + return_type: Unknown +} +function Process100 { + return_type: Unknown +} +class User1 { + name: String + email: String + age: Int +} +class User2 { + name: String + email: String + age: Int +} +class User3 { + name: String + email: String + age: Int +} +class User4 { + name: String + email: String + age: Int +} +class User5 { + name: String + email: String + age: Int +} +class User6 { + name: String + email: String + age: Int +} +class User7 { + name: String + email: String + age: Int +} +class User8 { + name: String + email: String + age: Int +} +class User9 { + name: String + email: String + age: Int +} +class User10 { + name: String + email: String + age: Int +} +class User11 { + name: String + email: String + age: Int +} +class User12 { + name: String + email: String + age: Int +} +class User13 { + name: String + email: String + age: Int +} +class User14 { + name: String + email: String + age: Int +} +class User15 { + name: String + email: String + age: Int +} +class User16 { + name: String + email: String + age: Int +} +class User17 { + name: String + email: String + age: Int +} +class User18 { + name: String + email: String + age: Int +} +class User19 { + name: String + email: String + age: Int +} +class User20 { + name: String + email: String + age: Int +} +class User21 { + name: String + email: String + age: Int +} +class User22 { + name: String + email: String + age: Int +} +class User23 { + name: String + email: String + age: Int +} +class User24 { + name: String + email: String + age: Int +} +class User25 { + name: String + email: String + age: Int +} +class User26 { + name: String + email: String + age: Int +} +class User27 { + name: String + email: String + age: Int +} +class User28 { + name: String + email: String + age: Int +} +class User29 { + name: String + email: String + age: Int +} +class User30 { + name: String + email: String + age: Int +} +class User31 { + name: String + email: String + age: Int +} +class User32 { + name: String + email: String + age: Int +} +class User33 { + name: String + email: String + age: Int +} +class User34 { + name: String + email: String + age: Int +} +class User35 { + name: String + email: String + age: Int +} +class User36 { + name: String + email: String + age: Int +} +class User37 { + name: String + email: String + age: Int +} +class User38 { + name: String + email: String + age: Int +} +class User39 { + name: String + email: String + age: Int +} +class User40 { + name: String + email: String + age: Int +} +class User41 { + name: String + email: String + age: Int +} +class User42 { + name: String + email: String + age: Int +} +class User43 { + name: String + email: String + age: Int +} +class User44 { + name: String + email: String + age: Int +} +class User45 { + name: String + email: String + age: Int +} +class User46 { + name: String + email: String + age: Int +} +class User47 { + name: String + email: String + age: Int +} +class User48 { + name: String + email: String + age: Int +} +class User49 { + name: String + email: String + age: Int +} +class User50 { + name: String + email: String + age: Int +} +class User51 { + name: String + email: String + age: Int +} +class User52 { + name: String + email: String + age: Int +} +class User53 { + name: String + email: String + age: Int +} +class User54 { + name: String + email: String + age: Int +} +class User55 { + name: String + email: String + age: Int +} +class User56 { + name: String + email: String + age: Int +} +class User57 { + name: String + email: String + age: Int +} +class User58 { + name: String + email: String + age: Int +} +class User59 { + name: String + email: String + age: Int +} +class User60 { + name: String + email: String + age: Int +} +class User61 { + name: String + email: String + age: Int +} +class User62 { + name: String + email: String + age: Int +} +class User63 { + name: String + email: String + age: Int +} +class User64 { + name: String + email: String + age: Int +} +class User65 { + name: String + email: String + age: Int +} +class User66 { + name: String + email: String + age: Int +} +class User67 { + name: String + email: String + age: Int +} +class User68 { + name: String + email: String + age: Int +} +class User69 { + name: String + email: String + age: Int +} +class User70 { + name: String + email: String + age: Int +} +class User71 { + name: String + email: String + age: Int +} +class User72 { + name: String + email: String + age: Int +} +class User73 { + name: String + email: String + age: Int +} +class User74 { + name: String + email: String + age: Int +} +class User75 { + name: String + email: String + age: Int +} +class User76 { + name: String + email: String + age: Int +} +class User77 { + name: String + email: String + age: Int +} +class User78 { + name: String + email: String + age: Int +} +class User79 { + name: String + email: String + age: Int +} +class User80 { + name: String + email: String + age: Int +} +class User81 { + name: String + email: String + age: Int +} +class User82 { + name: String + email: String + age: Int +} +class User83 { + name: String + email: String + age: Int +} +class User84 { + name: String + email: String + age: Int +} +class User85 { + name: String + email: String + age: Int +} +class User86 { + name: String + email: String + age: Int +} +class User87 { + name: String + email: String + age: Int +} +class User88 { + name: String + email: String + age: Int +} +class User89 { + name: String + email: String + age: Int +} +class User90 { + name: String + email: String + age: Int +} +class User91 { + name: String + email: String + age: Int +} +class User92 { + name: String + email: String + age: Int +} +class User93 { + name: String + email: String + age: Int +} +class User94 { + name: String + email: String + age: Int +} +class User95 { + name: String + email: String + age: Int +} +class User96 { + name: String + email: String + age: Int +} +class User97 { + name: String + email: String + age: Int +} +class User98 { + name: String + email: String + age: Int +} +class User99 { + name: String + email: String + age: Int +} +class User100 { + name: String + email: String + age: Int +} +class User101 { + name: String + email: String + age: Int +} +class User102 { + name: String + email: String + age: Int +} +class User103 { + name: String + email: String + age: Int +} +class User104 { + name: String + email: String + age: Int +} +class User105 { + name: String + email: String + age: Int +} +class User106 { + name: String + email: String + age: Int +} +class User107 { + name: String + email: String + age: Int +} +class User108 { + name: String + email: String + age: Int +} +class User109 { + name: String + email: String + age: Int +} +class User110 { + name: String + email: String + age: Int +} +class User111 { + name: String + email: String + age: Int +} +class User112 { + name: String + email: String + age: Int +} +class User113 { + name: String + email: String + age: Int +} +class User114 { + name: String + email: String + age: Int +} +class User115 { + name: String + email: String + age: Int +} +class User116 { + name: String + email: String + age: Int +} +class User117 { + name: String + email: String + age: Int +} +class User118 { + name: String + email: String + age: Int +} +class User119 { + name: String + email: String + age: Int +} +class User120 { + name: String + email: String + age: Int +} +class User121 { + name: String + email: String + age: Int +} +class User122 { + name: String + email: String + age: Int +} +class User123 { + name: String + email: String + age: Int +} +class User124 { + name: String + email: String + age: Int +} +class User125 { + name: String + email: String + age: Int +} +class User126 { + name: String + email: String + age: Int +} +class User127 { + name: String + email: String + age: Int +} +class User128 { + name: String + email: String + age: Int +} +class User129 { + name: String + email: String + age: Int +} +class User130 { + name: String + email: String + age: Int +} +class User131 { + name: String + email: String + age: Int +} +class User132 { + name: String + email: String + age: Int +} +class User133 { + name: String + email: String + age: Int +} +class User134 { + name: String + email: String + age: Int +} +class User135 { + name: String + email: String + age: Int +} +class User136 { + name: String + email: String + age: Int +} +class User137 { + name: String + email: String + age: Int +} +class User138 { + name: String + email: String + age: Int +} +class User139 { + name: String + email: String + age: Int +} +class User140 { + name: String + email: String + age: Int +} +class User141 { + name: String + email: String + age: Int +} +class User142 { + name: String + email: String + age: Int +} +class User143 { + name: String + email: String + age: Int +} +class User144 { + name: String + email: String + age: Int +} +class User145 { + name: String + email: String + age: Int +} +class User146 { + name: String + email: String + age: Int +} +class User147 { + name: String + email: String + age: Int +} +class User148 { + name: String + email: String + age: Int +} +class User149 { + name: String + email: String + age: Int +} +class User150 { + name: String + email: String + age: Int +} +class User151 { + name: String + email: String + age: Int +} +class User152 { + name: String + email: String + age: Int +} +class User153 { + name: String + email: String + age: Int +} +class User154 { + name: String + email: String + age: Int +} +class User155 { + name: String + email: String + age: Int +} +class User156 { + name: String + email: String + age: Int +} +class User157 { + name: String + email: String + age: Int +} +class User158 { + name: String + email: String + age: Int +} +class User159 { + name: String + email: String + age: Int +} +class User160 { + name: String + email: String + age: Int +} +class User161 { + name: String + email: String + age: Int +} +class User162 { + name: String + email: String + age: Int +} +class User163 { + name: String + email: String + age: Int +} +class User164 { + name: String + email: String + age: Int +} +class User165 { + name: String + email: String + age: Int +} +class User166 { + name: String + email: String + age: Int +} +class User167 { + name: String + email: String + age: Int +} +class User168 { + name: String + email: String + age: Int +} +class User169 { + name: String + email: String + age: Int +} +class User170 { + name: String + email: String + age: Int +} +class User171 { + name: String + email: String + age: Int +} +class User172 { + name: String + email: String + age: Int +} +class User173 { + name: String + email: String + age: Int +} +class User174 { + name: String + email: String + age: Int +} +class User175 { + name: String + email: String + age: Int +} +class User176 { + name: String + email: String + age: Int +} +class User177 { + name: String + email: String + age: Int +} +class User178 { + name: String + email: String + age: Int +} +class User179 { + name: String + email: String + age: Int +} +class User180 { + name: String + email: String + age: Int +} +class User181 { + name: String + email: String + age: Int +} +class User182 { + name: String + email: String + age: Int +} +class User183 { + name: String + email: String + age: Int +} +class User184 { + name: String + email: String + age: Int +} +class User185 { + name: String + email: String + age: Int +} +class User186 { + name: String + email: String + age: Int +} +class User187 { + name: String + email: String + age: Int +} +class User188 { + name: String + email: String + age: Int +} +class User189 { + name: String + email: String + age: Int +} +class User190 { + name: String + email: String + age: Int +} +class User191 { + name: String + email: String + age: Int +} +class User192 { + name: String + email: String + age: Int +} +class User193 { + name: String + email: String + age: Int +} +class User194 { + name: String + email: String + age: Int +} +class User195 { + name: String + email: String + age: Int +} +class User196 { + name: String + email: String + age: Int +} +class User197 { + name: String + email: String + age: Int +} +class User198 { + name: String + email: String + age: Int +} +class User199 { + name: String + email: String + age: Int +} +class User200 { + name: String + email: String + age: Int +} +class User201 { + name: String + email: String + age: Int +} +class User202 { + name: String + email: String + age: Int +} +class User203 { + name: String + email: String + age: Int +} +class User204 { + name: String + email: String + age: Int +} +class User205 { + name: String + email: String + age: Int +} +class User206 { + name: String + email: String + age: Int +} +class User207 { + name: String + email: String + age: Int +} +class User208 { + name: String + email: String + age: Int +} +class User209 { + name: String + email: String + age: Int +} +class User210 { + name: String + email: String + age: Int +} +class User211 { + name: String + email: String + age: Int +} +class User212 { + name: String + email: String + age: Int +} +class User213 { + name: String + email: String + age: Int +} +class User214 { + name: String + email: String + age: Int +} +class User215 { + name: String + email: String + age: Int +} +class User216 { + name: String + email: String + age: Int +} +class User217 { + name: String + email: String + age: Int +} +class User218 { + name: String + email: String + age: Int +} +class User219 { + name: String + email: String + age: Int +} +class User220 { + name: String + email: String + age: Int +} +class User221 { + name: String + email: String + age: Int +} +class User222 { + name: String + email: String + age: Int +} +class User223 { + name: String + email: String + age: Int +} +class User224 { + name: String + email: String + age: Int +} +class User225 { + name: String + email: String + age: Int +} +class User226 { + name: String + email: String + age: Int +} +class User227 { + name: String + email: String + age: Int +} +class User228 { + name: String + email: String + age: Int +} +class User229 { + name: String + email: String + age: Int +} +class User230 { + name: String + email: String + age: Int +} +class User231 { + name: String + email: String + age: Int +} +class User232 { + name: String + email: String + age: Int +} +class User233 { + name: String + email: String + age: Int +} +class User234 { + name: String + email: String + age: Int +} +class User235 { + name: String + email: String + age: Int +} +class User236 { + name: String + email: String + age: Int +} +class User237 { + name: String + email: String + age: Int +} +class User238 { + name: String + email: String + age: Int +} +class User239 { + name: String + email: String + age: Int +} +class User240 { + name: String + email: String + age: Int +} +class User241 { + name: String + email: String + age: Int +} +class User242 { + name: String + email: String + age: Int +} +class User243 { + name: String + email: String + age: Int +} +class User244 { + name: String + email: String + age: Int +} +class User245 { + name: String + email: String + age: Int +} +class User246 { + name: String + email: String + age: Int +} +class User247 { + name: String + email: String + age: Int +} +class User248 { + name: String + email: String + age: Int +} +class User249 { + name: String + email: String + age: Int +} +class User250 { + name: String + email: String + age: Int +} +class User251 { + name: String + email: String + age: Int +} +class User252 { + name: String + email: String + age: Int +} +class User253 { + name: String + email: String + age: Int +} +class User254 { + name: String + email: String + age: Int +} +class User255 { + name: String + email: String + age: Int +} +class User256 { + name: String + email: String + age: Int +} +class User257 { + name: String + email: String + age: Int +} +class User258 { + name: String + email: String + age: Int +} +class User259 { + name: String + email: String + age: Int +} +class User260 { + name: String + email: String + age: Int +} +class User261 { + name: String + email: String + age: Int +} +class User262 { + name: String + email: String + age: Int +} +class User263 { + name: String + email: String + age: Int +} +class User264 { + name: String + email: String + age: Int +} +class User265 { + name: String + email: String + age: Int +} +class User266 { + name: String + email: String + age: Int +} +class User267 { + name: String + email: String + age: Int +} +class User268 { + name: String + email: String + age: Int +} +class User269 { + name: String + email: String + age: Int +} +class User270 { + name: String + email: String + age: Int +} +class User271 { + name: String + email: String + age: Int +} +class User272 { + name: String + email: String + age: Int +} +class User273 { + name: String + email: String + age: Int +} +class User274 { + name: String + email: String + age: Int +} +class User275 { + name: String + email: String + age: Int +} +class User276 { + name: String + email: String + age: Int +} +class User277 { + name: String + email: String + age: Int +} +class User278 { + name: String + email: String + age: Int +} +class User279 { + name: String + email: String + age: Int +} +class User280 { + name: String + email: String + age: Int +} +class User281 { + name: String + email: String + age: Int +} +class User282 { + name: String + email: String + age: Int +} +class User283 { + name: String + email: String + age: Int +} +class User284 { + name: String + email: String + age: Int +} +class User285 { + name: String + email: String + age: Int +} +class User286 { + name: String + email: String + age: Int +} +class User287 { + name: String + email: String + age: Int +} +class User288 { + name: String + email: String + age: Int +} +class User289 { + name: String + email: String + age: Int +} +class User290 { + name: String + email: String + age: Int +} +class User291 { + name: String + email: String + age: Int +} +class User292 { + name: String + email: String + age: Int +} +class User293 { + name: String + email: String + age: Int +} +class User294 { + name: String + email: String + age: Int +} +class User295 { + name: String + email: String + age: Int +} +class User296 { + name: String + email: String + age: Int +} +class User297 { + name: String + email: String + age: Int +} +class User298 { + name: String + email: String + age: Int +} +class User299 { + name: String + email: String + age: Int +} +class User300 { + name: String + email: String + age: Int +} +class User301 { + name: String + email: String + age: Int +} +class User302 { + name: String + email: String + age: Int +} +class User303 { + name: String + email: String + age: Int +} +class User304 { + name: String + email: String + age: Int +} +class User305 { + name: String + email: String + age: Int +} +class User306 { + name: String + email: String + age: Int +} +class User307 { + name: String + email: String + age: Int +} +class User308 { + name: String + email: String + age: Int +} +class User309 { + name: String + email: String + age: Int +} +class User310 { + name: String + email: String + age: Int +} +class User311 { + name: String + email: String + age: Int +} +class User312 { + name: String + email: String + age: Int +} +class User313 { + name: String + email: String + age: Int +} +class User314 { + name: String + email: String + age: Int +} +class User315 { + name: String + email: String + age: Int +} +class User316 { + name: String + email: String + age: Int +} +class User317 { + name: String + email: String + age: Int +} +class User318 { + name: String + email: String + age: Int +} +class User319 { + name: String + email: String + age: Int +} +class User320 { + name: String + email: String + age: Int +} +class User321 { + name: String + email: String + age: Int +} +class User322 { + name: String + email: String + age: Int +} +class User323 { + name: String + email: String + age: Int +} +class User324 { + name: String + email: String + age: Int +} +class User325 { + name: String + email: String + age: Int +} +class User326 { + name: String + email: String + age: Int +} +class User327 { + name: String + email: String + age: Int +} +class User328 { + name: String + email: String + age: Int +} +class User329 { + name: String + email: String + age: Int +} +class User330 { + name: String + email: String + age: Int +} +class User331 { + name: String + email: String + age: Int +} +class User332 { + name: String + email: String + age: Int +} +class User333 { + name: String + email: String + age: Int +} +class User334 { + name: String + email: String + age: Int +} +class User335 { + name: String + email: String + age: Int +} +class User336 { + name: String + email: String + age: Int +} +class User337 { + name: String + email: String + age: Int +} +class User338 { + name: String + email: String + age: Int +} +class User339 { + name: String + email: String + age: Int +} +class User340 { + name: String + email: String + age: Int +} +class User341 { + name: String + email: String + age: Int +} +class User342 { + name: String + email: String + age: Int +} +class User343 { + name: String + email: String + age: Int +} +class User344 { + name: String + email: String + age: Int +} +class User345 { + name: String + email: String + age: Int +} +class User346 { + name: String + email: String + age: Int +} +class User347 { + name: String + email: String + age: Int +} +class User348 { + name: String + email: String + age: Int +} +class User349 { + name: String + email: String + age: Int +} +class User350 { + name: String + email: String + age: Int +} +class User351 { + name: String + email: String + age: Int +} +class User352 { + name: String + email: String + age: Int +} +class User353 { + name: String + email: String + age: Int +} +class User354 { + name: String + email: String + age: Int +} +class User355 { + name: String + email: String + age: Int +} +class User356 { + name: String + email: String + age: Int +} +class User357 { + name: String + email: String + age: Int +} +class User358 { + name: String + email: String + age: Int +} +class User359 { + name: String + email: String + age: Int +} +class User360 { + name: String + email: String + age: Int +} +class User361 { + name: String + email: String + age: Int +} +class User362 { + name: String + email: String + age: Int +} +class User363 { + name: String + email: String + age: Int +} +class User364 { + name: String + email: String + age: Int +} +class User365 { + name: String + email: String + age: Int +} +class User366 { + name: String + email: String + age: Int +} +class User367 { + name: String + email: String + age: Int +} +class User368 { + name: String + email: String + age: Int +} +class User369 { + name: String + email: String + age: Int +} +class User370 { + name: String + email: String + age: Int +} +class User371 { + name: String + email: String + age: Int +} +class User372 { + name: String + email: String + age: Int +} +class User373 { + name: String + email: String + age: Int +} +class User374 { + name: String + email: String + age: Int +} +class User375 { + name: String + email: String + age: Int +} +class User376 { + name: String + email: String + age: Int +} +class User377 { + name: String + email: String + age: Int +} +class User378 { + name: String + email: String + age: Int +} +class User379 { + name: String + email: String + age: Int +} +class User380 { + name: String + email: String + age: Int +} +class User381 { + name: String + email: String + age: Int +} +class User382 { + name: String + email: String + age: Int +} +class User383 { + name: String + email: String + age: Int +} +class User384 { + name: String + email: String + age: Int +} +class User385 { + name: String + email: String + age: Int +} +class User386 { + name: String + email: String + age: Int +} +class User387 { + name: String + email: String + age: Int +} +class User388 { + name: String + email: String + age: Int +} +class User389 { + name: String + email: String + age: Int +} +class User390 { + name: String + email: String + age: Int +} +class User391 { + name: String + email: String + age: Int +} +class User392 { + name: String + email: String + age: Int +} +class User393 { + name: String + email: String + age: Int +} +class User394 { + name: String + email: String + age: Int +} +class User395 { + name: String + email: String + age: Int +} +class User396 { + name: String + email: String + age: Int +} +class User397 { + name: String + email: String + age: Int +} +class User398 { + name: String + email: String + age: Int +} +class User399 { + name: String + email: String + age: Int +} +class User400 { + name: String + email: String + age: Int +} +class User401 { + name: String + email: String + age: Int +} +class User402 { + name: String + email: String + age: Int +} +class User403 { + name: String + email: String + age: Int +} +class User404 { + name: String + email: String + age: Int +} +class User405 { + name: String + email: String + age: Int +} +class User406 { + name: String + email: String + age: Int +} +class User407 { + name: String + email: String + age: Int +} +class User408 { + name: String + email: String + age: Int +} +class User409 { + name: String + email: String + age: Int +} +class User410 { + name: String + email: String + age: Int +} +class User411 { + name: String + email: String + age: Int +} +class User412 { + name: String + email: String + age: Int +} +class User413 { + name: String + email: String + age: Int +} +class User414 { + name: String + email: String + age: Int +} +class User415 { + name: String + email: String + age: Int +} +class User416 { + name: String + email: String + age: Int +} +class User417 { + name: String + email: String + age: Int +} +class User418 { + name: String + email: String + age: Int +} +class User419 { + name: String + email: String + age: Int +} +class User420 { + name: String + email: String + age: Int +} +class User421 { + name: String + email: String + age: Int +} +class User422 { + name: String + email: String + age: Int +} +class User423 { + name: String + email: String + age: Int +} +class User424 { + name: String + email: String + age: Int +} +class User425 { + name: String + email: String + age: Int +} +class User426 { + name: String + email: String + age: Int +} +class User427 { + name: String + email: String + age: Int +} +class User428 { + name: String + email: String + age: Int +} +class User429 { + name: String + email: String + age: Int +} +class User430 { + name: String + email: String + age: Int +} +class User431 { + name: String + email: String + age: Int +} +class User432 { + name: String + email: String + age: Int +} +class User433 { + name: String + email: String + age: Int +} +class User434 { + name: String + email: String + age: Int +} +class User435 { + name: String + email: String + age: Int +} +class User436 { + name: String + email: String + age: Int +} +class User437 { + name: String + email: String + age: Int +} +class User438 { + name: String + email: String + age: Int +} +class User439 { + name: String + email: String + age: Int +} +class User440 { + name: String + email: String + age: Int +} +class User441 { + name: String + email: String + age: Int +} +class User442 { + name: String + email: String + age: Int +} +class User443 { + name: String + email: String + age: Int +} +class User444 { + name: String + email: String + age: Int +} +class User445 { + name: String + email: String + age: Int +} +class User446 { + name: String + email: String + age: Int +} +class User447 { + name: String + email: String + age: Int +} +class User448 { + name: String + email: String + age: Int +} +class User449 { + name: String + email: String + age: Int +} +class User450 { + name: String + email: String + age: Int +} +class User451 { + name: String + email: String + age: Int +} +class User452 { + name: String + email: String + age: Int +} +class User453 { + name: String + email: String + age: Int +} +class User454 { + name: String + email: String + age: Int +} +class User455 { + name: String + email: String + age: Int +} +class User456 { + name: String + email: String + age: Int +} +class User457 { + name: String + email: String + age: Int +} +class User458 { + name: String + email: String + age: Int +} +class User459 { + name: String + email: String + age: Int +} +class User460 { + name: String + email: String + age: Int +} +class User461 { + name: String + email: String + age: Int +} +class User462 { + name: String + email: String + age: Int +} +class User463 { + name: String + email: String + age: Int +} +class User464 { + name: String + email: String + age: Int +} +class User465 { + name: String + email: String + age: Int +} +class User466 { + name: String + email: String + age: Int +} +class User467 { + name: String + email: String + age: Int +} +class User468 { + name: String + email: String + age: Int +} +class User469 { + name: String + email: String + age: Int +} +class User470 { + name: String + email: String + age: Int +} +class User471 { + name: String + email: String + age: Int +} +class User472 { + name: String + email: String + age: Int +} +class User473 { + name: String + email: String + age: Int +} +class User474 { + name: String + email: String + age: Int +} +class User475 { + name: String + email: String + age: Int +} +class User476 { + name: String + email: String + age: Int +} +class User477 { + name: String + email: String + age: Int +} +class User478 { + name: String + email: String + age: Int +} +class User479 { + name: String + email: String + age: Int +} +class User480 { + name: String + email: String + age: Int +} +class User481 { + name: String + email: String + age: Int +} +class User482 { + name: String + email: String + age: Int +} +class User483 { + name: String + email: String + age: Int +} +class User484 { + name: String + email: String + age: Int +} +class User485 { + name: String + email: String + age: Int +} +class User486 { + name: String + email: String + age: Int +} +class User487 { + name: String + email: String + age: Int +} +class User488 { + name: String + email: String + age: Int +} +class User489 { + name: String + email: String + age: Int +} +class User490 { + name: String + email: String + age: Int +} +class User491 { + name: String + email: String + age: Int +} +class User492 { + name: String + email: String + age: Int +} +class User493 { + name: String + email: String + age: Int +} +class User494 { + name: String + email: String + age: Int +} +class User495 { + name: String + email: String + age: Int +} +class User496 { + name: String + email: String + age: Int +} +class User497 { + name: String + email: String + age: Int +} +class User498 { + name: String + email: String + age: Int +} +class User499 { + name: String + email: String + age: Int +} +class User500 { + name: String + email: String + age: Int +} +class User501 { + name: String + email: String + age: Int +} +class User502 { + name: String + email: String + age: Int +} +class User503 { + name: String + email: String + age: Int +} +class User504 { + name: String + email: String + age: Int +} +class User505 { + name: String + email: String + age: Int +} +class User506 { + name: String + email: String + age: Int +} +class User507 { + name: String + email: String + age: Int +} +class User508 { + name: String + email: String + age: Int +} +class User509 { + name: String + email: String + age: Int +} +class User510 { + name: String + email: String + age: Int +} +class User511 { + name: String + email: String + age: Int +} +class User512 { + name: String + email: String + age: Int +} +class User513 { + name: String + email: String + age: Int +} +class User514 { + name: String + email: String + age: Int +} +class User515 { + name: String + email: String + age: Int +} +class User516 { + name: String + email: String + age: Int +} +class User517 { + name: String + email: String + age: Int +} +class User518 { + name: String + email: String + age: Int +} +class User519 { + name: String + email: String + age: Int +} +class User520 { + name: String + email: String + age: Int +} +class User521 { + name: String + email: String + age: Int +} +class User522 { + name: String + email: String + age: Int +} +class User523 { + name: String + email: String + age: Int +} +class User524 { + name: String + email: String + age: Int +} +class User525 { + name: String + email: String + age: Int +} +class User526 { + name: String + email: String + age: Int +} +class User527 { + name: String + email: String + age: Int +} +class User528 { + name: String + email: String + age: Int +} +class User529 { + name: String + email: String + age: Int +} +class User530 { + name: String + email: String + age: Int +} +class User531 { + name: String + email: String + age: Int +} +class User532 { + name: String + email: String + age: Int +} +class User533 { + name: String + email: String + age: Int +} +class User534 { + name: String + email: String + age: Int +} +class User535 { + name: String + email: String + age: Int +} +class User536 { + name: String + email: String + age: Int +} +class User537 { + name: String + email: String + age: Int +} +class User538 { + name: String + email: String + age: Int +} +class User539 { + name: String + email: String + age: Int +} +class User540 { + name: String + email: String + age: Int +} +class User541 { + name: String + email: String + age: Int +} +class User542 { + name: String + email: String + age: Int +} +class User543 { + name: String + email: String + age: Int +} +class User544 { + name: String + email: String + age: Int +} +class User545 { + name: String + email: String + age: Int +} +class User546 { + name: String + email: String + age: Int +} +class User547 { + name: String + email: String + age: Int +} +class User548 { + name: String + email: String + age: Int +} +class User549 { + name: String + email: String + age: Int +} +class User550 { + name: String + email: String + age: Int +} +class User551 { + name: String + email: String + age: Int +} +class User552 { + name: String + email: String + age: Int +} +class User553 { + name: String + email: String + age: Int +} +class User554 { + name: String + email: String + age: Int +} +class User555 { + name: String + email: String + age: Int +} +class User556 { + name: String + email: String + age: Int +} +class User557 { + name: String + email: String + age: Int +} +class User558 { + name: String + email: String + age: Int +} +class User559 { + name: String + email: String + age: Int +} +class User560 { + name: String + email: String + age: Int +} +class User561 { + name: String + email: String + age: Int +} +class User562 { + name: String + email: String + age: Int +} +class User563 { + name: String + email: String + age: Int +} +class User564 { + name: String + email: String + age: Int +} +class User565 { + name: String + email: String + age: Int +} +class User566 { + name: String + email: String + age: Int +} +class User567 { + name: String + email: String + age: Int +} +class User568 { + name: String + email: String + age: Int +} +class User569 { + name: String + email: String + age: Int +} +class User570 { + name: String + email: String + age: Int +} +class User571 { + name: String + email: String + age: Int +} +class User572 { + name: String + email: String + age: Int +} +class User573 { + name: String + email: String + age: Int +} +class User574 { + name: String + email: String + age: Int +} +class User575 { + name: String + email: String + age: Int +} +class User576 { + name: String + email: String + age: Int +} +class User577 { + name: String + email: String + age: Int +} +class User578 { + name: String + email: String + age: Int +} +class User579 { + name: String + email: String + age: Int +} +class User580 { + name: String + email: String + age: Int +} +class User581 { + name: String + email: String + age: Int +} +class User582 { + name: String + email: String + age: Int +} +class User583 { + name: String + email: String + age: Int +} +class User584 { + name: String + email: String + age: Int +} +class User585 { + name: String + email: String + age: Int +} +class User586 { + name: String + email: String + age: Int +} +class User587 { + name: String + email: String + age: Int +} +class User588 { + name: String + email: String + age: Int +} +class User589 { + name: String + email: String + age: Int +} +class User590 { + name: String + email: String + age: Int +} +class User591 { + name: String + email: String + age: Int +} +class User592 { + name: String + email: String + age: Int +} +class User593 { + name: String + email: String + age: Int +} +class User594 { + name: String + email: String + age: Int +} +class User595 { + name: String + email: String + age: Int +} +class User596 { + name: String + email: String + age: Int +} +class User597 { + name: String + email: String + age: Int +} +class User598 { + name: String + email: String + age: Int +} +class User599 { + name: String + email: String + age: Int +} +class User600 { + name: String + email: String + age: Int +} +class User601 { + name: String + email: String + age: Int +} +class User602 { + name: String + email: String + age: Int +} +class User603 { + name: String + email: String + age: Int +} +class User604 { + name: String + email: String + age: Int +} +class User605 { + name: String + email: String + age: Int +} +class User606 { + name: String + email: String + age: Int +} +class User607 { + name: String + email: String + age: Int +} +class User608 { + name: String + email: String + age: Int +} +class User609 { + name: String + email: String + age: Int +} +class User610 { + name: String + email: String + age: Int +} +class User611 { + name: String + email: String + age: Int +} +class User612 { + name: String + email: String + age: Int +} +class User613 { + name: String + email: String + age: Int +} +class User614 { + name: String + email: String + age: Int +} +class User615 { + name: String + email: String + age: Int +} +class User616 { + name: String + email: String + age: Int +} +class User617 { + name: String + email: String + age: Int +} +class User618 { + name: String + email: String + age: Int +} +class User619 { + name: String + email: String + age: Int +} +class User620 { + name: String + email: String + age: Int +} +class User621 { + name: String + email: String + age: Int +} +class User622 { + name: String + email: String + age: Int +} +class User623 { + name: String + email: String + age: Int +} +class User624 { + name: String + email: String + age: Int +} +class User625 { + name: String + email: String + age: Int +} +class User626 { + name: String + email: String + age: Int +} +class User627 { + name: String + email: String + age: Int +} +class User628 { + name: String + email: String + age: Int +} +class User629 { + name: String + email: String + age: Int +} +class User630 { + name: String + email: String + age: Int +} +class User631 { + name: String + email: String + age: Int +} +class User632 { + name: String + email: String + age: Int +} +class User633 { + name: String + email: String + age: Int +} +class User634 { + name: String + email: String + age: Int +} +class User635 { + name: String + email: String + age: Int +} +class User636 { + name: String + email: String + age: Int +} +class User637 { + name: String + email: String + age: Int +} +class User638 { + name: String + email: String + age: Int +} +class User639 { + name: String + email: String + age: Int +} +class User640 { + name: String + email: String + age: Int +} +class User641 { + name: String + email: String + age: Int +} +class User642 { + name: String + email: String + age: Int +} +class User643 { + name: String + email: String + age: Int +} +class User644 { + name: String + email: String + age: Int +} +class User645 { + name: String + email: String + age: Int +} +class User646 { + name: String + email: String + age: Int +} +class User647 { + name: String + email: String + age: Int +} +class User648 { + name: String + email: String + age: Int +} +class User649 { + name: String + email: String + age: Int +} +class User650 { + name: String + email: String + age: Int +} +class User651 { + name: String + email: String + age: Int +} +class User652 { + name: String + email: String + age: Int +} +class User653 { + name: String + email: String + age: Int +} +class User654 { + name: String + email: String + age: Int +} +class User655 { + name: String + email: String + age: Int +} +class User656 { + name: String + email: String + age: Int +} +class User657 { + name: String + email: String + age: Int +} +class User658 { + name: String + email: String + age: Int +} +class User659 { + name: String + email: String + age: Int +} +class User660 { + name: String + email: String + age: Int +} +class User661 { + name: String + email: String + age: Int +} +class User662 { + name: String + email: String + age: Int +} +class User663 { + name: String + email: String + age: Int +} +class User664 { + name: String + email: String + age: Int +} +class User665 { + name: String + email: String + age: Int +} +class User666 { + name: String + email: String + age: Int +} +class User667 { + name: String + email: String + age: Int +} +class User668 { + name: String + email: String + age: Int +} +class User669 { + name: String + email: String + age: Int +} +class User670 { + name: String + email: String + age: Int +} +class User671 { + name: String + email: String + age: Int +} +class User672 { + name: String + email: String + age: Int +} +class User673 { + name: String + email: String + age: Int +} +class User674 { + name: String + email: String + age: Int +} +class User675 { + name: String + email: String + age: Int +} +class User676 { + name: String + email: String + age: Int +} +class User677 { + name: String + email: String + age: Int +} +class User678 { + name: String + email: String + age: Int +} +class User679 { + name: String + email: String + age: Int +} +class User680 { + name: String + email: String + age: Int +} +class User681 { + name: String + email: String + age: Int +} +class User682 { + name: String + email: String + age: Int +} +class User683 { + name: String + email: String + age: Int +} +class User684 { + name: String + email: String + age: Int +} +class User685 { + name: String + email: String + age: Int +} +class User686 { + name: String + email: String + age: Int +} +class User687 { + name: String + email: String + age: Int +} +class User688 { + name: String + email: String + age: Int +} +class User689 { + name: String + email: String + age: Int +} +class User690 { + name: String + email: String + age: Int +} +class User691 { + name: String + email: String + age: Int +} +class User692 { + name: String + email: String + age: Int +} +class User693 { + name: String + email: String + age: Int +} +class User694 { + name: String + email: String + age: Int +} +class User695 { + name: String + email: String + age: Int +} +class User696 { + name: String + email: String + age: Int +} +class User697 { + name: String + email: String + age: Int +} +class User698 { + name: String + email: String + age: Int +} +class User699 { + name: String + email: String + age: Int +} +class User700 { + name: String + email: String + age: Int +} +class User701 { + name: String + email: String + age: Int +} +class User702 { + name: String + email: String + age: Int +} +class User703 { + name: String + email: String + age: Int +} +class User704 { + name: String + email: String + age: Int +} +class User705 { + name: String + email: String + age: Int +} +class User706 { + name: String + email: String + age: Int +} +class User707 { + name: String + email: String + age: Int +} +class User708 { + name: String + email: String + age: Int +} +class User709 { + name: String + email: String + age: Int +} +class User710 { + name: String + email: String + age: Int +} +class User711 { + name: String + email: String + age: Int +} +class User712 { + name: String + email: String + age: Int +} +class User713 { + name: String + email: String + age: Int +} +class User714 { + name: String + email: String + age: Int +} +class User715 { + name: String + email: String + age: Int +} +class User716 { + name: String + email: String + age: Int +} +class User717 { + name: String + email: String + age: Int +} +class User718 { + name: String + email: String + age: Int +} +class User719 { + name: String + email: String + age: Int +} +class User720 { + name: String + email: String + age: Int +} +class User721 { + name: String + email: String + age: Int +} +class User722 { + name: String + email: String + age: Int +} +class User723 { + name: String + email: String + age: Int +} +class User724 { + name: String + email: String + age: Int +} +class User725 { + name: String + email: String + age: Int +} +class User726 { + name: String + email: String + age: Int +} +class User727 { + name: String + email: String + age: Int +} +class User728 { + name: String + email: String + age: Int +} +class User729 { + name: String + email: String + age: Int +} +class User730 { + name: String + email: String + age: Int +} +class User731 { + name: String + email: String + age: Int +} +class User732 { + name: String + email: String + age: Int +} +class User733 { + name: String + email: String + age: Int +} +class User734 { + name: String + email: String + age: Int +} +class User735 { + name: String + email: String + age: Int +} +class User736 { + name: String + email: String + age: Int +} +class User737 { + name: String + email: String + age: Int +} +class User738 { + name: String + email: String + age: Int +} +class User739 { + name: String + email: String + age: Int +} +class User740 { + name: String + email: String + age: Int +} +class User741 { + name: String + email: String + age: Int +} +class User742 { + name: String + email: String + age: Int +} +class User743 { + name: String + email: String + age: Int +} +class User744 { + name: String + email: String + age: Int +} +class User745 { + name: String + email: String + age: Int +} +class User746 { + name: String + email: String + age: Int +} +class User747 { + name: String + email: String + age: Int +} +class User748 { + name: String + email: String + age: Int +} +class User749 { + name: String + email: String + age: Int +} +class User750 { + name: String + email: String + age: Int +} +class User751 { + name: String + email: String + age: Int +} +class User752 { + name: String + email: String + age: Int +} +class User753 { + name: String + email: String + age: Int +} +class User754 { + name: String + email: String + age: Int +} +class User755 { + name: String + email: String + age: Int +} +class User756 { + name: String + email: String + age: Int +} +class User757 { + name: String + email: String + age: Int +} +class User758 { + name: String + email: String + age: Int +} +class User759 { + name: String + email: String + age: Int +} +class User760 { + name: String + email: String + age: Int +} +class User761 { + name: String + email: String + age: Int +} +class User762 { + name: String + email: String + age: Int +} +class User763 { + name: String + email: String + age: Int +} +class User764 { + name: String + email: String + age: Int +} +class User765 { + name: String + email: String + age: Int +} +class User766 { + name: String + email: String + age: Int +} +class User767 { + name: String + email: String + age: Int +} +class User768 { + name: String + email: String + age: Int +} +class User769 { + name: String + email: String + age: Int +} +class User770 { + name: String + email: String + age: Int +} +class User771 { + name: String + email: String + age: Int +} +class User772 { + name: String + email: String + age: Int +} +class User773 { + name: String + email: String + age: Int +} +class User774 { + name: String + email: String + age: Int +} +class User775 { + name: String + email: String + age: Int +} +class User776 { + name: String + email: String + age: Int +} +class User777 { + name: String + email: String + age: Int +} +class User778 { + name: String + email: String + age: Int +} +class User779 { + name: String + email: String + age: Int +} +class User780 { + name: String + email: String + age: Int +} +class User781 { + name: String + email: String + age: Int +} +class User782 { + name: String + email: String + age: Int +} +class User783 { + name: String + email: String + age: Int +} +class User784 { + name: String + email: String + age: Int +} +class User785 { + name: String + email: String + age: Int +} +class User786 { + name: String + email: String + age: Int +} +class User787 { + name: String + email: String + age: Int +} +class User788 { + name: String + email: String + age: Int +} +class User789 { + name: String + email: String + age: Int +} +class User790 { + name: String + email: String + age: Int +} +class User791 { + name: String + email: String + age: Int +} +class User792 { + name: String + email: String + age: Int +} +class User793 { + name: String + email: String + age: Int +} +class User794 { + name: String + email: String + age: Int +} +class User795 { + name: String + email: String + age: Int +} +class User796 { + name: String + email: String + age: Int +} +class User797 { + name: String + email: String + age: Int +} +class User798 { + name: String + email: String + age: Int +} +class User799 { + name: String + email: String + age: Int +} +class User800 { + name: String + email: String + age: Int +} +class User801 { + name: String + email: String + age: Int +} +class User802 { + name: String + email: String + age: Int +} +class User803 { + name: String + email: String + age: Int +} +class User804 { + name: String + email: String + age: Int +} +class User805 { + name: String + email: String + age: Int +} +class User806 { + name: String + email: String + age: Int +} +class User807 { + name: String + email: String + age: Int +} +class User808 { + name: String + email: String + age: Int +} +class User809 { + name: String + email: String + age: Int +} +class User810 { + name: String + email: String + age: Int +} +class User811 { + name: String + email: String + age: Int +} +class User812 { + name: String + email: String + age: Int +} +class User813 { + name: String + email: String + age: Int +} +class User814 { + name: String + email: String + age: Int +} +class User815 { + name: String + email: String + age: Int +} +class User816 { + name: String + email: String + age: Int +} +class User817 { + name: String + email: String + age: Int +} +class User818 { + name: String + email: String + age: Int +} +class User819 { + name: String + email: String + age: Int +} +class User820 { + name: String + email: String + age: Int +} +class User821 { + name: String + email: String + age: Int +} +class User822 { + name: String + email: String + age: Int +} +class User823 { + name: String + email: String + age: Int +} +class User824 { + name: String + email: String + age: Int +} +class User825 { + name: String + email: String + age: Int +} +class User826 { + name: String + email: String + age: Int +} +class User827 { + name: String + email: String + age: Int +} +class User828 { + name: String + email: String + age: Int +} +class User829 { + name: String + email: String + age: Int +} +class User830 { + name: String + email: String + age: Int +} +class User831 { + name: String + email: String + age: Int +} +class User832 { + name: String + email: String + age: Int +} +class User833 { + name: String + email: String + age: Int +} +class User834 { + name: String + email: String + age: Int +} +class User835 { + name: String + email: String + age: Int +} +class User836 { + name: String + email: String + age: Int +} +class User837 { + name: String + email: String + age: Int +} +class User838 { + name: String + email: String + age: Int +} +class User839 { + name: String + email: String + age: Int +} +class User840 { + name: String + email: String + age: Int +} +class User841 { + name: String + email: String + age: Int +} +class User842 { + name: String + email: String + age: Int +} +class User843 { + name: String + email: String + age: Int +} +class User844 { + name: String + email: String + age: Int +} +class User845 { + name: String + email: String + age: Int +} +class User846 { + name: String + email: String + age: Int +} +class User847 { + name: String + email: String + age: Int +} +class User848 { + name: String + email: String + age: Int +} +class User849 { + name: String + email: String + age: Int +} +class User850 { + name: String + email: String + age: Int +} +class User851 { + name: String + email: String + age: Int +} +class User852 { + name: String + email: String + age: Int +} +class User853 { + name: String + email: String + age: Int +} +class User854 { + name: String + email: String + age: Int +} +class User855 { + name: String + email: String + age: Int +} +class User856 { + name: String + email: String + age: Int +} +class User857 { + name: String + email: String + age: Int +} +class User858 { + name: String + email: String + age: Int +} +class User859 { + name: String + email: String + age: Int +} +class User860 { + name: String + email: String + age: Int +} +class User861 { + name: String + email: String + age: Int +} +class User862 { + name: String + email: String + age: Int +} +class User863 { + name: String + email: String + age: Int +} +class User864 { + name: String + email: String + age: Int +} +class User865 { + name: String + email: String + age: Int +} +class User866 { + name: String + email: String + age: Int +} +class User867 { + name: String + email: String + age: Int +} +class User868 { + name: String + email: String + age: Int +} +class User869 { + name: String + email: String + age: Int +} +class User870 { + name: String + email: String + age: Int +} +class User871 { + name: String + email: String + age: Int +} +class User872 { + name: String + email: String + age: Int +} +class User873 { + name: String + email: String + age: Int +} +class User874 { + name: String + email: String + age: Int +} +class User875 { + name: String + email: String + age: Int +} +class User876 { + name: String + email: String + age: Int +} +class User877 { + name: String + email: String + age: Int +} +class User878 { + name: String + email: String + age: Int +} +class User879 { + name: String + email: String + age: Int +} +class User880 { + name: String + email: String + age: Int +} +class User881 { + name: String + email: String + age: Int +} +class User882 { + name: String + email: String + age: Int +} +class User883 { + name: String + email: String + age: Int +} +class User884 { + name: String + email: String + age: Int +} +class User885 { + name: String + email: String + age: Int +} +class User886 { + name: String + email: String + age: Int +} +class User887 { + name: String + email: String + age: Int +} +class User888 { + name: String + email: String + age: Int +} +class User889 { + name: String + email: String + age: Int +} +class User890 { + name: String + email: String + age: Int +} +class User891 { + name: String + email: String + age: Int +} +class User892 { + name: String + email: String + age: Int +} +class User893 { + name: String + email: String + age: Int +} +class User894 { + name: String + email: String + age: Int +} +class User895 { + name: String + email: String + age: Int +} +class User896 { + name: String + email: String + age: Int +} +class User897 { + name: String + email: String + age: Int +} +class User898 { + name: String + email: String + age: Int +} +class User899 { + name: String + email: String + age: Int +} +class User900 { + name: String + email: String + age: Int +} +class User901 { + name: String + email: String + age: Int +} +class User902 { + name: String + email: String + age: Int +} +class User903 { + name: String + email: String + age: Int +} +class User904 { + name: String + email: String + age: Int +} +class User905 { + name: String + email: String + age: Int +} +class User906 { + name: String + email: String + age: Int +} +class User907 { + name: String + email: String + age: Int +} +class User908 { + name: String + email: String + age: Int +} +class User909 { + name: String + email: String + age: Int +} +class User910 { + name: String + email: String + age: Int +} +class User911 { + name: String + email: String + age: Int +} +class User912 { + name: String + email: String + age: Int +} +class User913 { + name: String + email: String + age: Int +} +class User914 { + name: String + email: String + age: Int +} +class User915 { + name: String + email: String + age: Int +} +class User916 { + name: String + email: String + age: Int +} +class User917 { + name: String + email: String + age: Int +} +class User918 { + name: String + email: String + age: Int +} +class User919 { + name: String + email: String + age: Int +} +class User920 { + name: String + email: String + age: Int +} +class User921 { + name: String + email: String + age: Int +} +class User922 { + name: String + email: String + age: Int +} +class User923 { + name: String + email: String + age: Int +} +class User924 { + name: String + email: String + age: Int +} +class User925 { + name: String + email: String + age: Int +} +class User926 { + name: String + email: String + age: Int +} +class User927 { + name: String + email: String + age: Int +} +class User928 { + name: String + email: String + age: Int +} +class User929 { + name: String + email: String + age: Int +} +class User930 { + name: String + email: String + age: Int +} +class User931 { + name: String + email: String + age: Int +} +class User932 { + name: String + email: String + age: Int +} +class User933 { + name: String + email: String + age: Int +} +class User934 { + name: String + email: String + age: Int +} +class User935 { + name: String + email: String + age: Int +} +class User936 { + name: String + email: String + age: Int +} +class User937 { + name: String + email: String + age: Int +} +class User938 { + name: String + email: String + age: Int +} +class User939 { + name: String + email: String + age: Int +} +class User940 { + name: String + email: String + age: Int +} +class User941 { + name: String + email: String + age: Int +} +class User942 { + name: String + email: String + age: Int +} +class User943 { + name: String + email: String + age: Int +} +class User944 { + name: String + email: String + age: Int +} +class User945 { + name: String + email: String + age: Int +} +class User946 { + name: String + email: String + age: Int +} +class User947 { + name: String + email: String + age: Int +} +class User948 { + name: String + email: String + age: Int +} +class User949 { + name: String + email: String + age: Int +} +class User950 { + name: String + email: String + age: Int +} +class User951 { + name: String + email: String + age: Int +} +class User952 { + name: String + email: String + age: Int +} +class User953 { + name: String + email: String + age: Int +} +class User954 { + name: String + email: String + age: Int +} +class User955 { + name: String + email: String + age: Int +} +class User956 { + name: String + email: String + age: Int +} +class User957 { + name: String + email: String + age: Int +} +class User958 { + name: String + email: String + age: Int +} +class User959 { + name: String + email: String + age: Int +} +class User960 { + name: String + email: String + age: Int +} +class User961 { + name: String + email: String + age: Int +} +class User962 { + name: String + email: String + age: Int +} +class User963 { + name: String + email: String + age: Int +} +class User964 { + name: String + email: String + age: Int +} +class User965 { + name: String + email: String + age: Int +} +class User966 { + name: String + email: String + age: Int +} +class User967 { + name: String + email: String + age: Int +} +class User968 { + name: String + email: String + age: Int +} +class User969 { + name: String + email: String + age: Int +} +class User970 { + name: String + email: String + age: Int +} +class User971 { + name: String + email: String + age: Int +} +class User972 { + name: String + email: String + age: Int +} +class User973 { + name: String + email: String + age: Int +} +class User974 { + name: String + email: String + age: Int +} +class User975 { + name: String + email: String + age: Int +} +class User976 { + name: String + email: String + age: Int +} +class User977 { + name: String + email: String + age: Int +} +class User978 { + name: String + email: String + age: Int +} +class User979 { + name: String + email: String + age: Int +} +class User980 { + name: String + email: String + age: Int +} +class User981 { + name: String + email: String + age: Int +} +class User982 { + name: String + email: String + age: Int +} +class User983 { + name: String + email: String + age: Int +} +class User984 { + name: String + email: String + age: Int +} +class User985 { + name: String + email: String + age: Int +} +class User986 { + name: String + email: String + age: Int +} +class User987 { + name: String + email: String + age: Int +} +class User988 { + name: String + email: String + age: Int +} +class User989 { + name: String + email: String + age: Int +} +class User990 { + name: String + email: String + age: Int +} +class User991 { + name: String + email: String + age: Int +} +class User992 { + name: String + email: String + age: Int +} +class User993 { + name: String + email: String + age: Int +} +class User994 { + name: String + email: String + age: Int +} +class User995 { + name: String + email: String + age: Int +} +class User996 { + name: String + email: String + age: Int +} +class User997 { + name: String + email: String + age: Int +} +class User998 { + name: String + email: String + age: Int +} +class User999 { + name: String + email: String + age: Int +} +class User1000 { + name: String + email: String + age: Int +} +enum Status1 { + EnumVariant { name: "ACTIVE_1" } + EnumVariant { name: "INACTIVE_1" } + EnumVariant { name: "PENDING_1" } +} +enum Status2 { + EnumVariant { name: "ACTIVE_2" } + EnumVariant { name: "INACTIVE_2" } + EnumVariant { name: "PENDING_2" } +} +enum Status3 { + EnumVariant { name: "ACTIVE_3" } + EnumVariant { name: "INACTIVE_3" } + EnumVariant { name: "PENDING_3" } +} +enum Status4 { + EnumVariant { name: "ACTIVE_4" } + EnumVariant { name: "INACTIVE_4" } + EnumVariant { name: "PENDING_4" } +} +enum Status5 { + EnumVariant { name: "ACTIVE_5" } + EnumVariant { name: "INACTIVE_5" } + EnumVariant { name: "PENDING_5" } +} +enum Status6 { + EnumVariant { name: "ACTIVE_6" } + EnumVariant { name: "INACTIVE_6" } + EnumVariant { name: "PENDING_6" } +} +enum Status7 { + EnumVariant { name: "ACTIVE_7" } + EnumVariant { name: "INACTIVE_7" } + EnumVariant { name: "PENDING_7" } +} +enum Status8 { + EnumVariant { name: "ACTIVE_8" } + EnumVariant { name: "INACTIVE_8" } + EnumVariant { name: "PENDING_8" } +} +enum Status9 { + EnumVariant { name: "ACTIVE_9" } + EnumVariant { name: "INACTIVE_9" } + EnumVariant { name: "PENDING_9" } +} +enum Status10 { + EnumVariant { name: "ACTIVE_10" } + EnumVariant { name: "INACTIVE_10" } + EnumVariant { name: "PENDING_10" } +} +enum Status11 { + EnumVariant { name: "ACTIVE_11" } + EnumVariant { name: "INACTIVE_11" } + EnumVariant { name: "PENDING_11" } +} +enum Status12 { + EnumVariant { name: "ACTIVE_12" } + EnumVariant { name: "INACTIVE_12" } + EnumVariant { name: "PENDING_12" } +} +enum Status13 { + EnumVariant { name: "ACTIVE_13" } + EnumVariant { name: "INACTIVE_13" } + EnumVariant { name: "PENDING_13" } +} +enum Status14 { + EnumVariant { name: "ACTIVE_14" } + EnumVariant { name: "INACTIVE_14" } + EnumVariant { name: "PENDING_14" } +} +enum Status15 { + EnumVariant { name: "ACTIVE_15" } + EnumVariant { name: "INACTIVE_15" } + EnumVariant { name: "PENDING_15" } +} +enum Status16 { + EnumVariant { name: "ACTIVE_16" } + EnumVariant { name: "INACTIVE_16" } + EnumVariant { name: "PENDING_16" } +} +enum Status17 { + EnumVariant { name: "ACTIVE_17" } + EnumVariant { name: "INACTIVE_17" } + EnumVariant { name: "PENDING_17" } +} +enum Status18 { + EnumVariant { name: "ACTIVE_18" } + EnumVariant { name: "INACTIVE_18" } + EnumVariant { name: "PENDING_18" } +} +enum Status19 { + EnumVariant { name: "ACTIVE_19" } + EnumVariant { name: "INACTIVE_19" } + EnumVariant { name: "PENDING_19" } +} +enum Status20 { + EnumVariant { name: "ACTIVE_20" } + EnumVariant { name: "INACTIVE_20" } + EnumVariant { name: "PENDING_20" } +} +enum Status21 { + EnumVariant { name: "ACTIVE_21" } + EnumVariant { name: "INACTIVE_21" } + EnumVariant { name: "PENDING_21" } +} +enum Status22 { + EnumVariant { name: "ACTIVE_22" } + EnumVariant { name: "INACTIVE_22" } + EnumVariant { name: "PENDING_22" } +} +enum Status23 { + EnumVariant { name: "ACTIVE_23" } + EnumVariant { name: "INACTIVE_23" } + EnumVariant { name: "PENDING_23" } +} +enum Status24 { + EnumVariant { name: "ACTIVE_24" } + EnumVariant { name: "INACTIVE_24" } + EnumVariant { name: "PENDING_24" } +} +enum Status25 { + EnumVariant { name: "ACTIVE_25" } + EnumVariant { name: "INACTIVE_25" } + EnumVariant { name: "PENDING_25" } +} +enum Status26 { + EnumVariant { name: "ACTIVE_26" } + EnumVariant { name: "INACTIVE_26" } + EnumVariant { name: "PENDING_26" } +} +enum Status27 { + EnumVariant { name: "ACTIVE_27" } + EnumVariant { name: "INACTIVE_27" } + EnumVariant { name: "PENDING_27" } +} +enum Status28 { + EnumVariant { name: "ACTIVE_28" } + EnumVariant { name: "INACTIVE_28" } + EnumVariant { name: "PENDING_28" } +} +enum Status29 { + EnumVariant { name: "ACTIVE_29" } + EnumVariant { name: "INACTIVE_29" } + EnumVariant { name: "PENDING_29" } +} +enum Status30 { + EnumVariant { name: "ACTIVE_30" } + EnumVariant { name: "INACTIVE_30" } + EnumVariant { name: "PENDING_30" } +} +enum Status31 { + EnumVariant { name: "ACTIVE_31" } + EnumVariant { name: "INACTIVE_31" } + EnumVariant { name: "PENDING_31" } +} +enum Status32 { + EnumVariant { name: "ACTIVE_32" } + EnumVariant { name: "INACTIVE_32" } + EnumVariant { name: "PENDING_32" } +} +enum Status33 { + EnumVariant { name: "ACTIVE_33" } + EnumVariant { name: "INACTIVE_33" } + EnumVariant { name: "PENDING_33" } +} +enum Status34 { + EnumVariant { name: "ACTIVE_34" } + EnumVariant { name: "INACTIVE_34" } + EnumVariant { name: "PENDING_34" } +} +enum Status35 { + EnumVariant { name: "ACTIVE_35" } + EnumVariant { name: "INACTIVE_35" } + EnumVariant { name: "PENDING_35" } +} +enum Status36 { + EnumVariant { name: "ACTIVE_36" } + EnumVariant { name: "INACTIVE_36" } + EnumVariant { name: "PENDING_36" } +} +enum Status37 { + EnumVariant { name: "ACTIVE_37" } + EnumVariant { name: "INACTIVE_37" } + EnumVariant { name: "PENDING_37" } +} +enum Status38 { + EnumVariant { name: "ACTIVE_38" } + EnumVariant { name: "INACTIVE_38" } + EnumVariant { name: "PENDING_38" } +} +enum Status39 { + EnumVariant { name: "ACTIVE_39" } + EnumVariant { name: "INACTIVE_39" } + EnumVariant { name: "PENDING_39" } +} +enum Status40 { + EnumVariant { name: "ACTIVE_40" } + EnumVariant { name: "INACTIVE_40" } + EnumVariant { name: "PENDING_40" } +} +enum Status41 { + EnumVariant { name: "ACTIVE_41" } + EnumVariant { name: "INACTIVE_41" } + EnumVariant { name: "PENDING_41" } +} +enum Status42 { + EnumVariant { name: "ACTIVE_42" } + EnumVariant { name: "INACTIVE_42" } + EnumVariant { name: "PENDING_42" } +} +enum Status43 { + EnumVariant { name: "ACTIVE_43" } + EnumVariant { name: "INACTIVE_43" } + EnumVariant { name: "PENDING_43" } +} +enum Status44 { + EnumVariant { name: "ACTIVE_44" } + EnumVariant { name: "INACTIVE_44" } + EnumVariant { name: "PENDING_44" } +} +enum Status45 { + EnumVariant { name: "ACTIVE_45" } + EnumVariant { name: "INACTIVE_45" } + EnumVariant { name: "PENDING_45" } +} +enum Status46 { + EnumVariant { name: "ACTIVE_46" } + EnumVariant { name: "INACTIVE_46" } + EnumVariant { name: "PENDING_46" } +} +enum Status47 { + EnumVariant { name: "ACTIVE_47" } + EnumVariant { name: "INACTIVE_47" } + EnumVariant { name: "PENDING_47" } +} +enum Status48 { + EnumVariant { name: "ACTIVE_48" } + EnumVariant { name: "INACTIVE_48" } + EnumVariant { name: "PENDING_48" } +} +enum Status49 { + EnumVariant { name: "ACTIVE_49" } + EnumVariant { name: "INACTIVE_49" } + EnumVariant { name: "PENDING_49" } +} +enum Status50 { + EnumVariant { name: "ACTIVE_50" } + EnumVariant { name: "INACTIVE_50" } + EnumVariant { name: "PENDING_50" } +} +enum Status51 { + EnumVariant { name: "ACTIVE_51" } + EnumVariant { name: "INACTIVE_51" } + EnumVariant { name: "PENDING_51" } +} +enum Status52 { + EnumVariant { name: "ACTIVE_52" } + EnumVariant { name: "INACTIVE_52" } + EnumVariant { name: "PENDING_52" } +} +enum Status53 { + EnumVariant { name: "ACTIVE_53" } + EnumVariant { name: "INACTIVE_53" } + EnumVariant { name: "PENDING_53" } +} +enum Status54 { + EnumVariant { name: "ACTIVE_54" } + EnumVariant { name: "INACTIVE_54" } + EnumVariant { name: "PENDING_54" } +} +enum Status55 { + EnumVariant { name: "ACTIVE_55" } + EnumVariant { name: "INACTIVE_55" } + EnumVariant { name: "PENDING_55" } +} +enum Status56 { + EnumVariant { name: "ACTIVE_56" } + EnumVariant { name: "INACTIVE_56" } + EnumVariant { name: "PENDING_56" } +} +enum Status57 { + EnumVariant { name: "ACTIVE_57" } + EnumVariant { name: "INACTIVE_57" } + EnumVariant { name: "PENDING_57" } +} +enum Status58 { + EnumVariant { name: "ACTIVE_58" } + EnumVariant { name: "INACTIVE_58" } + EnumVariant { name: "PENDING_58" } +} +enum Status59 { + EnumVariant { name: "ACTIVE_59" } + EnumVariant { name: "INACTIVE_59" } + EnumVariant { name: "PENDING_59" } +} +enum Status60 { + EnumVariant { name: "ACTIVE_60" } + EnumVariant { name: "INACTIVE_60" } + EnumVariant { name: "PENDING_60" } +} +enum Status61 { + EnumVariant { name: "ACTIVE_61" } + EnumVariant { name: "INACTIVE_61" } + EnumVariant { name: "PENDING_61" } +} +enum Status62 { + EnumVariant { name: "ACTIVE_62" } + EnumVariant { name: "INACTIVE_62" } + EnumVariant { name: "PENDING_62" } +} +enum Status63 { + EnumVariant { name: "ACTIVE_63" } + EnumVariant { name: "INACTIVE_63" } + EnumVariant { name: "PENDING_63" } +} +enum Status64 { + EnumVariant { name: "ACTIVE_64" } + EnumVariant { name: "INACTIVE_64" } + EnumVariant { name: "PENDING_64" } +} +enum Status65 { + EnumVariant { name: "ACTIVE_65" } + EnumVariant { name: "INACTIVE_65" } + EnumVariant { name: "PENDING_65" } +} +enum Status66 { + EnumVariant { name: "ACTIVE_66" } + EnumVariant { name: "INACTIVE_66" } + EnumVariant { name: "PENDING_66" } +} +enum Status67 { + EnumVariant { name: "ACTIVE_67" } + EnumVariant { name: "INACTIVE_67" } + EnumVariant { name: "PENDING_67" } +} +enum Status68 { + EnumVariant { name: "ACTIVE_68" } + EnumVariant { name: "INACTIVE_68" } + EnumVariant { name: "PENDING_68" } +} +enum Status69 { + EnumVariant { name: "ACTIVE_69" } + EnumVariant { name: "INACTIVE_69" } + EnumVariant { name: "PENDING_69" } +} +enum Status70 { + EnumVariant { name: "ACTIVE_70" } + EnumVariant { name: "INACTIVE_70" } + EnumVariant { name: "PENDING_70" } +} +enum Status71 { + EnumVariant { name: "ACTIVE_71" } + EnumVariant { name: "INACTIVE_71" } + EnumVariant { name: "PENDING_71" } +} +enum Status72 { + EnumVariant { name: "ACTIVE_72" } + EnumVariant { name: "INACTIVE_72" } + EnumVariant { name: "PENDING_72" } +} +enum Status73 { + EnumVariant { name: "ACTIVE_73" } + EnumVariant { name: "INACTIVE_73" } + EnumVariant { name: "PENDING_73" } +} +enum Status74 { + EnumVariant { name: "ACTIVE_74" } + EnumVariant { name: "INACTIVE_74" } + EnumVariant { name: "PENDING_74" } +} +enum Status75 { + EnumVariant { name: "ACTIVE_75" } + EnumVariant { name: "INACTIVE_75" } + EnumVariant { name: "PENDING_75" } +} +enum Status76 { + EnumVariant { name: "ACTIVE_76" } + EnumVariant { name: "INACTIVE_76" } + EnumVariant { name: "PENDING_76" } +} +enum Status77 { + EnumVariant { name: "ACTIVE_77" } + EnumVariant { name: "INACTIVE_77" } + EnumVariant { name: "PENDING_77" } +} +enum Status78 { + EnumVariant { name: "ACTIVE_78" } + EnumVariant { name: "INACTIVE_78" } + EnumVariant { name: "PENDING_78" } +} +enum Status79 { + EnumVariant { name: "ACTIVE_79" } + EnumVariant { name: "INACTIVE_79" } + EnumVariant { name: "PENDING_79" } +} +enum Status80 { + EnumVariant { name: "ACTIVE_80" } + EnumVariant { name: "INACTIVE_80" } + EnumVariant { name: "PENDING_80" } +} +enum Status81 { + EnumVariant { name: "ACTIVE_81" } + EnumVariant { name: "INACTIVE_81" } + EnumVariant { name: "PENDING_81" } +} +enum Status82 { + EnumVariant { name: "ACTIVE_82" } + EnumVariant { name: "INACTIVE_82" } + EnumVariant { name: "PENDING_82" } +} +enum Status83 { + EnumVariant { name: "ACTIVE_83" } + EnumVariant { name: "INACTIVE_83" } + EnumVariant { name: "PENDING_83" } +} +enum Status84 { + EnumVariant { name: "ACTIVE_84" } + EnumVariant { name: "INACTIVE_84" } + EnumVariant { name: "PENDING_84" } +} +enum Status85 { + EnumVariant { name: "ACTIVE_85" } + EnumVariant { name: "INACTIVE_85" } + EnumVariant { name: "PENDING_85" } +} +enum Status86 { + EnumVariant { name: "ACTIVE_86" } + EnumVariant { name: "INACTIVE_86" } + EnumVariant { name: "PENDING_86" } +} +enum Status87 { + EnumVariant { name: "ACTIVE_87" } + EnumVariant { name: "INACTIVE_87" } + EnumVariant { name: "PENDING_87" } +} +enum Status88 { + EnumVariant { name: "ACTIVE_88" } + EnumVariant { name: "INACTIVE_88" } + EnumVariant { name: "PENDING_88" } +} +enum Status89 { + EnumVariant { name: "ACTIVE_89" } + EnumVariant { name: "INACTIVE_89" } + EnumVariant { name: "PENDING_89" } +} +enum Status90 { + EnumVariant { name: "ACTIVE_90" } + EnumVariant { name: "INACTIVE_90" } + EnumVariant { name: "PENDING_90" } +} +enum Status91 { + EnumVariant { name: "ACTIVE_91" } + EnumVariant { name: "INACTIVE_91" } + EnumVariant { name: "PENDING_91" } +} +enum Status92 { + EnumVariant { name: "ACTIVE_92" } + EnumVariant { name: "INACTIVE_92" } + EnumVariant { name: "PENDING_92" } +} +enum Status93 { + EnumVariant { name: "ACTIVE_93" } + EnumVariant { name: "INACTIVE_93" } + EnumVariant { name: "PENDING_93" } +} +enum Status94 { + EnumVariant { name: "ACTIVE_94" } + EnumVariant { name: "INACTIVE_94" } + EnumVariant { name: "PENDING_94" } +} +enum Status95 { + EnumVariant { name: "ACTIVE_95" } + EnumVariant { name: "INACTIVE_95" } + EnumVariant { name: "PENDING_95" } +} +enum Status96 { + EnumVariant { name: "ACTIVE_96" } + EnumVariant { name: "INACTIVE_96" } + EnumVariant { name: "PENDING_96" } +} +enum Status97 { + EnumVariant { name: "ACTIVE_97" } + EnumVariant { name: "INACTIVE_97" } + EnumVariant { name: "PENDING_97" } +} +enum Status98 { + EnumVariant { name: "ACTIVE_98" } + EnumVariant { name: "INACTIVE_98" } + EnumVariant { name: "PENDING_98" } +} +enum Status99 { + EnumVariant { name: "ACTIVE_99" } + EnumVariant { name: "INACTIVE_99" } + EnumVariant { name: "PENDING_99" } +} +enum Status100 { + EnumVariant { name: "ACTIVE_100" } + EnumVariant { name: "INACTIVE_100" } + EnumVariant { name: "PENDING_100" } +} +enum Item { + EnumVariant { name: "Function" } + EnumVariant { name: "FunctionDef" } + EnumVariant { name: "Class" } + EnumVariant { name: "ClassDef" } + EnumVariant { name: "Enum" } + EnumVariant { name: "EnumDef" } + EnumVariant { name: "Client" } + EnumVariant { name: "ClientDef" } + EnumVariant { name: "Test" } + EnumVariant { name: "TestDef" } + EnumVariant { name: "RetryPolicy" } + EnumVariant { name: "RetryPolicyDef" } + EnumVariant { name: "TemplateString" } + EnumVariant { name: "TemplateStringDef" } + EnumVariant { name: "TypeAlias" } + EnumVariant { name: "TypeAliasDef" } +} +type TypeAlias = Unknown +type TypeAlias = Unknown +function BodyTorture { + return_type: Unknown +} diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap index 2a7dc58d9c..67f71edb17 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === @@ -14,2306 +14,6 @@ expression: output [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration @@ -3706,8 +1406,3 @@ expression: output [parse] Expected Expected expression, found Expected expression [parse] Expected Expected expression, found Expected expression [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected Colon, found PlusEquals, found Expected Colon, found PlusEquals - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected block after while condition, found Expected block after while condition diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap index febaf9a207..5eea0edac0 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 3927 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -136,50 +135,58 @@ SOURCE_FILE WORD "FormatMessage" PARAMETER_LIST L_PAREN "(" - PARAMETER "name" + PARAMETER WORD "name" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - HASH "#" - QUOTE """ - WORD "Generate" - WORD "a" - WORD "message" - KW_FOR "for" - QUOTE """ - L_BRACE "{" - L_BRACE "{" - WORD "name" - R_BRACE "}" - R_BRACE "}" - QUOTE """ - WORD "Include" - WORD "quotes" - WORD "like" - COLON ":" - QUOTE """ - WORD "Welcome" - COMMA "," - ERROR_TOKEN "'" - L_BRACE "{" - L_BRACE "{" - WORD "name" - R_BRACE "}" - R_BRACE "}" - ERROR_TOKEN "'" - NOT "!" - QUOTE """ - QUOTE """ - HASH "#" - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + RAW_STRING_LITERAL " #" + Generate a message for "{{ name }}" + Include quotes like: "Welcome, '{{ name }}'!" + "#" + HASH "#" + QUOTE """ + WORD "Generate" + WORD "a" + WORD "message" + KW_FOR "for" + QUOTE """ + L_BRACE "{" + L_BRACE "{" + WORD "name" + R_BRACE "}" + R_BRACE "}" + QUOTE """ + WORD "Include" + WORD "quotes" + WORD "like" + COLON ":" + QUOTE """ + WORD "Welcome" + COMMA "," + ERROR_TOKEN "'" + L_BRACE "{" + L_BRACE "{" + WORD "name" + R_BRACE "}" + R_BRACE "}" + ERROR_TOKEN "'" + NOT "!" + QUOTE """ + QUOTE """ + HASH "#" + R_BRACE "}" === ERRORS === Expected Expected attribute argument, found Expected attribute argument @@ -216,46 +223,3 @@ SOURCE_FILE Expected Expected top-level declaration, found Expected top-level declaration Expected Expected top-level declaration, found Expected top-level declaration Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__raw_strings.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__raw_strings.snap index 4fcaa0ded9..46a45372ce 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__raw_strings.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__raw_strings.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -112,68 +112,48 @@ SOURCE_FILE WORD "ProcessText" PARAMETER_LIST L_PAREN "(" - PARAMETER "input" + PARAMETER WORD "input" - WORD "string" - R_PAREN ")" - ARROW "->" - WORD "string" - L_BRACE "{" - CLIENT_DEF " + TYPE_EXPR " string" + WORD "string" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + LLM_FUNCTION_BODY + L_BRACE "{" + CLIENT_FIELD " client GPT4" - KW_CLIENT "client" - WORD "GPT4" - WORD "prompt" - HASH "#" - QUOTE """ - WORD "Process" - WORD "the" - WORD "following" - WORD "text" - COLON ":" - L_BRACE "{" - L_BRACE "{" - WORD "input" - R_BRACE "}" - R_BRACE "}" - WORD "Return" - WORD "the" - WORD "processed" - WORD "result" - DOT "." - QUOTE """ - HASH "#" - R_BRACE "}" + KW_CLIENT "client" + WORD "GPT4" + PROMPT_FIELD + WORD "prompt" + RAW_STRING_LITERAL " #" + Process the following text: + {{ input }} + + Return the processed result. + "#" + HASH "#" + QUOTE """ + WORD "Process" + WORD "the" + WORD "following" + WORD "text" + COLON ":" + L_BRACE "{" + L_BRACE "{" + WORD "input" + R_BRACE "}" + R_BRACE "}" + WORD "Return" + WORD "the" + WORD "processed" + WORD "result" + DOT "." + QUOTE """ + HASH "#" + R_BRACE "}" === ERRORS === - Expected Expected type annotation (:), found Expected type annotation (:) - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap index 6c279cd43f..2d31027de3 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -282,7 +282,7 @@ SOURCE_FILE Expected Expected function name, found Expected function name Expected Expected LParen, found Error, found Expected LParen, found Error Expected Expected parameter name, found Expected parameter name - Expected Expected type annotation (:), found Expected type annotation (:) + Expected Expected type annotation, found Expected type annotation Expected Expected RParen, found Error, found Expected RParen, found Error Expected Expected return type (->), found Expected return type (->) Expected Expected function body, found Expected function body diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap index 4254c4f0e6..6b698fdc3d 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap @@ -1,6 +1,60 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function FormatMessage { + return_type: Unknown +} +class NestedQuotes { + single_in_double: String + double_in_single: String + She: Path(Path { segments: ["said"], kind: Plain }) + hello: Path(Path { segments: ["\"')\n escaped_in_escaped string @alias(\""], kind: Plain }) + The: Path(Path { segments: [""], kind: Plain }) + quote: Path(Path { segments: [""], kind: Plain }) + is: Path(Path { segments: ["here"], kind: Plain }) + complex_nesting: String + really: Path(Path { segments: [""], kind: Plain }) + complex: Path(Path { segments: [""], kind: Plain }) + json_like: String + key: Path(Path { segments: [""], kind: Plain }) + value: Path(Path { segments: [""], kind: Plain }) +} +function ProcessText { + return_type: Unknown +} +class RawStrings { + simple: String + with_quotes: String + multi_hash: String + multiline: String +} +function GetRole { + return_type: Unknown +} +class Messages { + greeting: String + empty: String + with_spaces: String + with_escapes: String + with_quotes: String + hello: Path(Path { segments: [""], kind: Plain }) +} +class UnicodeStrings { + emoji_basic: String + emoji_multiple: String + emoji_in_text: String + chinese: String + arabic: String + japanese: String + russian: String + math_symbols: String + currency: String + arrows: String + zero_width: String + rtl_override: String +} +client GPT4 { + provider: unknown +} diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap index 8e9b688ea2..5a68a82b40 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === @@ -37,80 +37,6 @@ expression: output [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type annotation (:), found Expected type annotation (:) - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration [parse] Expected Expected RParen, found Word, found Expected RParen, found Word [parse] Expected Expected type, found Expected type [parse] Expected Unexpected token in class body, found Unexpected token in class body @@ -120,7 +46,7 @@ expression: output [parse] Expected Expected function name, found Expected function name [parse] Expected Expected LParen, found Error, found Expected LParen, found Error [parse] Expected Expected parameter name, found Expected parameter name - [parse] Expected Expected type annotation (:), found Expected type annotation (:) + [parse] Expected Expected type annotation, found Expected type annotation [parse] Expected Expected RParen, found Error, found Expected RParen, found Error [parse] Expected Expected return type (->), found Expected return type (->) [parse] Expected Expected function body, found Expected function body diff --git a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap index 4254c4f0e6..2b70aebe0a 100644 --- a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap @@ -1,6 +1,12 @@ --- -source: target/debug/build/baml_tests-91bdee82f91f7b04/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -No items found. +function HelloWorld { + return_type: Unknown +} +class User { + name: String + age: Int +} diff --git a/baml_language/crates/baml_tests/src/lib.rs b/baml_language/crates/baml_tests/src/lib.rs index 32b1410245..9bb736d603 100644 --- a/baml_language/crates/baml_tests/src/lib.rs +++ b/baml_language/crates/baml_tests/src/lib.rs @@ -55,3 +55,86 @@ fn format_node_recursive(node: &baml_db::baml_syntax::SyntaxNode, depth: usize) result } + +// Helper function for formatting HIR items from a specific file +fn format_hir_file( + db: &baml_db::RootDatabase, + source_file: baml_db::SourceFile, + items: &[baml_db::baml_hir::ItemId], +) -> String { + use baml_db::baml_hir::ItemId; + use std::fmt::Write; + + // Get the ItemTree once and keep it alive for all lookups + let item_tree = baml_db::baml_hir::file_item_tree(db, source_file); + let mut result = String::new(); + + for item in items { + match item { + ItemId::Function(func_id) => { + let func = &item_tree[func_id.id(db)]; + writeln!(result, "function {} {{", func.name).unwrap(); + if !func.params.is_empty() { + writeln!(result, " params: {:?}", func.params).unwrap(); + } + writeln!(result, " return_type: {:?}", func.return_type).unwrap(); + if let Some(ref client) = func.client_ref { + writeln!(result, " client: {:?}", client).unwrap(); + } + if !func.type_params.is_empty() { + writeln!(result, " type_params: {:?}", func.type_params).unwrap(); + } + writeln!(result, "}}").unwrap(); + } + ItemId::Class(class_id) => { + let class = &item_tree[class_id.id(db)]; + writeln!(result, "class {} {{", class.name).unwrap(); + for field in &class.fields { + writeln!(result, " {}: {:?}", field.name, field.type_ref).unwrap(); + } + if class.is_dynamic { + writeln!(result, " @@dynamic").unwrap(); + } + if !class.type_params.is_empty() { + writeln!(result, " type_params: {:?}", class.type_params).unwrap(); + } + writeln!(result, "}}").unwrap(); + } + ItemId::Enum(enum_id) => { + let enum_def = &item_tree[enum_id.id(db)]; + writeln!(result, "enum {} {{", enum_def.name).unwrap(); + for variant in &enum_def.variants { + writeln!(result, " {:?}", variant).unwrap(); + } + if !enum_def.type_params.is_empty() { + writeln!(result, " type_params: {:?}", enum_def.type_params).unwrap(); + } + writeln!(result, "}}").unwrap(); + } + ItemId::TypeAlias(alias_id) => { + let alias = &item_tree[alias_id.id(db)]; + write!(result, "type {} = {:?}", alias.name, alias.type_ref).unwrap(); + if !alias.type_params.is_empty() { + write!(result, " <{:?}>", alias.type_params).unwrap(); + } + writeln!(result).unwrap(); + } + ItemId::Client(client_id) => { + let client = &item_tree[client_id.id(db)]; + writeln!(result, "client {} {{", client.name).unwrap(); + writeln!(result, " provider: {}", client.provider).unwrap(); + writeln!(result, "}}").unwrap(); + } + ItemId::Test(test_id) => { + let test = &item_tree[test_id.id(db)]; + writeln!(result, "test {} {{", test.name).unwrap(); + if !test.function_refs.is_empty() { + writeln!(result, " functions: {:?}", test.function_refs).unwrap(); + } + writeln!(result, "}}").unwrap(); + } + } + } + + result +} diff --git a/baml_language/crates/baml_thir/src/lib.rs b/baml_language/crates/baml_thir/src/lib.rs index 795997eadc..40af7edc9f 100644 --- a/baml_language/crates/baml_thir/src/lib.rs +++ b/baml_language/crates/baml_thir/src/lib.rs @@ -12,18 +12,18 @@ pub use types::*; /// Type inference result. #[derive(Debug, Clone, PartialEq, Eq)] -pub struct InferenceResult { - pub return_type: Ty, - pub param_types: HashMap, - pub errors: Vec, +pub struct InferenceResult<'db> { + pub return_type: Ty<'db>, + pub param_types: HashMap>, + pub errors: Vec>, } /// Type errors that can occur during type checking. #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub enum TypeError { +pub enum TypeError<'db> { TypeMismatch { - expected: Ty, - found: Ty, + expected: Ty<'db>, + found: Ty<'db>, span: baml_base::Span, }, UnknownType { @@ -33,7 +33,7 @@ pub enum TypeError { // Add more variants as needed } -impl baml_base::Diagnostic for TypeError { +impl baml_base::Diagnostic for TypeError<'_> { fn message(&self) -> String { match self { TypeError::TypeMismatch { @@ -62,10 +62,15 @@ impl baml_base::Diagnostic for TypeError { /// Helper function for type inference (non-tracked for now) /// In a real implementation, this would use tracked functions with proper salsa types -pub fn infer_function(db: &dyn salsa::Database, func: FunctionId) -> InferenceResult { - // TODO: Implement type inference - // Get function data from HIR - let _data = baml_hir::function_data(db, func); +pub fn infer_function<'db>( + db: &'db dyn salsa::Database, + func: FunctionId<'db>, +) -> InferenceResult<'db> { + // TODO: Implement type inference by looking up function in ItemTree + // We need to get the file from the FunctionLoc, get the ItemTree, + // and look up the function data by its LocalItemId + let _file = func.file(db); + let _local_id = func.id(db); InferenceResult { return_type: Ty::Unknown, @@ -75,14 +80,17 @@ pub fn infer_function(db: &dyn salsa::Database, func: FunctionId) -> InferenceRe } /// Helper function for class type resolution (non-tracked for now) -pub fn class_type(db: &dyn salsa::Database, class: ClassId) -> Ty { - // TODO: Resolve class type - let _data = baml_hir::class_data(db, class); +pub fn class_type<'db>(db: &'db dyn salsa::Database, class: ClassId<'db>) -> Ty<'db> { + // TODO: Resolve class type by looking up class in ItemTree + // We need to get the file from the ClassLoc, get the ItemTree, + // and look up the class data by its LocalItemId + let _file = class.file(db); + let _local_id = class.id(db); Ty::Unknown } /// Helper function for enum type resolution (non-tracked for now) -pub fn enum_type(_db: &dyn salsa::Database, _enum_id: EnumId) -> Ty { +pub fn enum_type<'db>(_db: &'db dyn salsa::Database, _enum_id: EnumId<'db>) -> Ty<'db> { // TODO: Resolve enum type Ty::Unknown } diff --git a/baml_language/crates/baml_thir/src/types.rs b/baml_language/crates/baml_thir/src/types.rs index c0647b1232..8075828ab5 100644 --- a/baml_language/crates/baml_thir/src/types.rs +++ b/baml_language/crates/baml_thir/src/types.rs @@ -4,7 +4,7 @@ use baml_hir::{ClassId, EnumId}; /// A resolved type in BAML. #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub enum Ty { +pub enum Ty<'db> { // Primitive types Int, Float, @@ -13,21 +13,24 @@ pub enum Ty { Null, // User-defined types - Class(ClassId), - Enum(EnumId), + Class(ClassId<'db>), + Enum(EnumId<'db>), // Type constructors - Optional(Box), - List(Box), - Map { key: Box, value: Box }, - Union(Vec), + Optional(Box>), + List(Box>), + Map { + key: Box>, + value: Box>, + }, + Union(Vec>), // Special types Unknown, Error, } -impl Ty { +impl Ty<'_> { /// Check if this type is an error type. pub fn is_error(&self) -> bool { matches!(self, Ty::Error) From 9e39c291e73cea1207c1c717671248e5b60dd7fd Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Tue, 18 Nov 2025 14:45:39 +0100 Subject: [PATCH 02/14] CI --- baml_language/crates/baml_hir/src/container.rs | 4 ++-- baml_language/crates/baml_hir/src/type_ref.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/baml_language/crates/baml_hir/src/container.rs b/baml_language/crates/baml_hir/src/container.rs index 5f9e9b2610..17a88eabf4 100644 --- a/baml_language/crates/baml_hir/src/container.rs +++ b/baml_language/crates/baml_hir/src/container.rs @@ -16,7 +16,7 @@ use baml_base::FileId; /// - Modules (future feature) /// - Block scopes (future feature) /// -/// Note: Cannot be Copy because of Box. +/// Note: Cannot be Copy because of `Box`. #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub enum ContainerId { /// Item defined directly in a file (current behavior). @@ -81,7 +81,7 @@ pub struct ProjectId(pub u32); /// Block scope identifier (future feature). /// -/// Note: Cannot be Copy because `ContainerId` contains Box. +/// Note: Cannot be Copy because `ContainerId` contains `Box`. #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct BlockId { /// The function or item containing this block. diff --git a/baml_language/crates/baml_hir/src/type_ref.rs b/baml_language/crates/baml_hir/src/type_ref.rs index bf38805a01..942da8a89b 100644 --- a/baml_language/crates/baml_hir/src/type_ref.rs +++ b/baml_language/crates/baml_hir/src/type_ref.rs @@ -50,7 +50,7 @@ pub enum TypeRef { }, /// Future: Type parameter reference. - /// Example: T in function(x: T) -> T + /// Example: T in `function(x: T) -> T` #[allow(dead_code)] TypeParam(Name), From f9ef4b734e897df613431438c6c6426b6c3f0e90 Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Tue, 18 Nov 2025 17:32:07 +0100 Subject: [PATCH 03/14] Function bodies --- baml_language/Cargo.lock | 8 + baml_language/Cargo.toml | 1 + baml_language/crates/baml_db/Cargo.toml | 1 + baml_language/crates/baml_db/src/lib.rs | 72 ++ baml_language/crates/baml_hir/Cargo.toml | 1 + baml_language/crates/baml_hir/src/body.rs | 343 ++++++++++ .../crates/baml_hir/src/item_tree.rs | 19 +- baml_language/crates/baml_hir/src/lib.rs | 21 +- .../crates/baml_hir/src/signature.rs | 148 +++++ .../baml_tests__basic_types__03_hir.snap | 14 +- .../baml_tests__generics__03_hir.snap | 8 +- ...ml_tests__parser_constructors__03_hir.snap | 88 ++- ..._tests__parser_error_recovery__03_hir.snap | 20 +- ...aml_tests__parser_expressions__03_hir.snap | 43 +- ...aml_tests__parser_speculative__03_hir.snap | 69 +- .../baml_tests__parser_stress__03_hir.snap | 619 +++++++++++++++--- .../baml_tests__parser_strings__03_hir.snap | 24 +- .../baml_tests__simple_function__03_hir.snap | 8 +- baml_language/crates/baml_tests/src/lib.rs | 78 ++- 19 files changed, 1410 insertions(+), 175 deletions(-) create mode 100644 baml_language/crates/baml_hir/src/body.rs create mode 100644 baml_language/crates/baml_hir/src/signature.rs diff --git a/baml_language/Cargo.lock b/baml_language/Cargo.lock index bc3247a022..e2663a800b 100644 --- a/baml_language/Cargo.lock +++ b/baml_language/Cargo.lock @@ -130,6 +130,7 @@ dependencies = [ "baml_syntax", "baml_thir", "baml_workspace", + "rowan", "salsa", ] @@ -150,6 +151,7 @@ dependencies = [ "baml_parser", "baml_syntax", "baml_workspace", + "la-arena", "rowan", "salsa", ] @@ -898,6 +900,12 @@ dependencies = [ "libc", ] +[[package]] +name = "la-arena" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3752f229dcc5a481d60f385fa479ff46818033d881d2d801aa27dffcfb5e8306" + [[package]] name = "lazy_static" version = "1.5.0" diff --git a/baml_language/Cargo.toml b/baml_language/Cargo.toml index 523df316e4..7ed66c2975 100644 --- a/baml_language/Cargo.toml +++ b/baml_language/Cargo.toml @@ -36,6 +36,7 @@ divan = { package = "codspeed-divan-compat", version = "*" } glob = { version = "0.3" } insta = { version = "1.34", features = ["yaml", "redactions"] } insta-cmd = { version = "0.6.0" } +la-arena = { version = "0.3" } logos = { version = "0.15" } pretty_assertions = { version = "1.4" } rowan = { version = "0.16" } diff --git a/baml_language/crates/baml_db/Cargo.toml b/baml_language/crates/baml_db/Cargo.toml index ce282052de..4b54c617a0 100644 --- a/baml_language/crates/baml_db/Cargo.toml +++ b/baml_language/crates/baml_db/Cargo.toml @@ -18,6 +18,7 @@ workspace = true [dependencies] salsa = { workspace = true } +rowan = { workspace = true } # All compiler crates baml_base = { workspace = true } diff --git a/baml_language/crates/baml_db/src/lib.rs b/baml_language/crates/baml_db/src/lib.rs index 3d405d0a79..31eeed1a5e 100644 --- a/baml_language/crates/baml_db/src/lib.rs +++ b/baml_language/crates/baml_db/src/lib.rs @@ -18,6 +18,7 @@ pub use baml_parser; pub use baml_syntax; pub use baml_thir; pub use baml_workspace; +use rowan::ast::AstNode; use salsa::Storage; /// Type alias for Salsa event callbacks @@ -83,3 +84,74 @@ impl Default for RootDatabase { Self::new() } } + +// +// ────────────────────────────────────────────────── FUNCTION QUERIES ───── +// + +/// Returns the signature of a function (params, return type, generics). +/// +/// This is separate from the `ItemTree` to provide fine-grained incrementality. +/// Changing a function body does NOT invalidate this query. +#[salsa::tracked] +pub fn function_signature<'db>( + db: &'db dyn baml_hir::Db, + file: SourceFile, + function: baml_hir::FunctionLoc<'db>, +) -> Arc { + let tree = baml_parser::syntax_tree(db, file); + let source_file = baml_syntax::ast::SourceFile::cast(tree).unwrap(); + + // Find the function node by name + let item_tree = baml_hir::file_item_tree(db, file); + let func = &item_tree[function.id(db)]; + + for item in source_file.items() { + if let baml_syntax::ast::Item::Function(func_node) = item { + if let Some(name_token) = func_node.name() { + if name_token.text() == func.name.as_str() { + return baml_hir::FunctionSignature::lower(&func_node); + } + } + } + } + + // Function not found - return minimal signature + Arc::new(baml_hir::FunctionSignature { + name: func.name.clone(), + params: vec![], + return_type: baml_hir::TypeRef::Unknown, + type_params: vec![], + attrs: baml_hir::FunctionAttributes::default(), + }) +} + +/// Returns the body of a function (LLM prompt or expression IR). +/// +/// This is the most frequently invalidated query - it changes whenever +/// the function body is edited. +#[salsa::tracked] +pub fn function_body<'db>( + db: &'db dyn baml_hir::Db, + file: SourceFile, + function: baml_hir::FunctionLoc<'db>, +) -> Arc { + let tree = baml_parser::syntax_tree(db, file); + let source_file = baml_syntax::ast::SourceFile::cast(tree).unwrap(); + + let item_tree = baml_hir::file_item_tree(db, file); + let func = &item_tree[function.id(db)]; + + for item in source_file.items() { + if let baml_syntax::ast::Item::Function(func_node) = item { + if let Some(name_token) = func_node.name() { + if name_token.text() == func.name.as_str() { + return baml_hir::FunctionBody::lower(&func_node); + } + } + } + } + + // No body found + Arc::new(baml_hir::FunctionBody::Missing) +} diff --git a/baml_language/crates/baml_hir/Cargo.toml b/baml_language/crates/baml_hir/Cargo.toml index b236aaaf88..004520d168 100644 --- a/baml_language/crates/baml_hir/Cargo.toml +++ b/baml_language/crates/baml_hir/Cargo.toml @@ -22,5 +22,6 @@ baml_parser = { workspace = true } baml_syntax = { workspace = true } baml_workspace = { workspace = true } +la-arena = { workspace = true } rowan = { workspace = true } salsa = { workspace = true } diff --git a/baml_language/crates/baml_hir/src/body.rs b/baml_language/crates/baml_hir/src/body.rs new file mode 100644 index 0000000000..69c5a9e420 --- /dev/null +++ b/baml_language/crates/baml_hir/src/body.rs @@ -0,0 +1,343 @@ +//! Function bodies - either LLM prompts or expression IR. +//! +//! The CST already distinguishes `LLM_FUNCTION_BODY` from `EXPR_FUNCTION_BODY`, +//! so we just need to lower each type appropriately. + +use crate::Name; +use la_arena::{Arena, Idx}; +use rowan::ast::AstNode; +use std::sync::Arc; + +/// The body of a function - determined by CST node type. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum FunctionBody { + /// LLM function: has `LLM_FUNCTION_BODY` in CST + Llm(LlmBody), + + /// Expression function: has `EXPR_FUNCTION_BODY` in CST + Expr(ExprBody), + + /// Function has no body (error recovery) + Missing, +} + +/// Body of an LLM function. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct LlmBody { + /// The client to use (e.g., "GPT4") + pub client: Option, + + /// The prompt template + pub prompt: Option, +} + +/// A prompt template with interpolations. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct PromptTemplate { + /// The raw prompt string (may contain {{ }} interpolations) + pub text: String, + + /// Parsed interpolation expressions + pub interpolations: Vec, +} + +/// A {{ var }} interpolation in a prompt. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Interpolation { + /// Variable name referenced + pub var_name: Name, + + /// Source offset in the prompt string + pub offset: u32, +} + +/// Body of an expression function (turing-complete). +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ExprBody { + /// Expression arena + pub exprs: Arena, + + /// Statement arena + pub stmts: Arena, + + /// Root expression of the function body (usually a `BLOCK_EXPR`) + pub root_expr: Option, +} + +// IDs for arena indices +pub type ExprId = Idx; +pub type StmtId = Idx; +pub type PatId = Idx; + +/// Expressions in BAML function bodies. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Expr { + /// Literal values + Literal(Literal), + + /// Variable/path reference (e.g., `x`, `GPT4`) + Path(Name), + + /// If expression + If { + condition: ExprId, + then_branch: ExprId, + else_branch: Option, + }, + + /// Match expression + Match { + scrutinee: ExprId, + arms: Vec, + }, + + /// Binary operation + Binary { + op: BinaryOp, + lhs: ExprId, + rhs: ExprId, + }, + + /// Unary operation + Unary { op: UnaryOp, expr: ExprId }, + + /// Function call: `call_f1()`, `transform(user)` + Call { callee: ExprId, args: Vec }, + + /// Object constructor: `Point { x: 1, y: 2 }` + Object { + type_name: Option, + fields: Vec<(Name, ExprId)>, + }, + + /// Array constructor: `[1, 2, 3]` + Array { elements: Vec }, + + /// Block expression: `{ stmt1; stmt2; expr }` + Block { + stmts: Vec, + tail_expr: Option, + }, + + /// Missing/error expression + Missing, +} + +/// Statements in BAML function bodies. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Stmt { + /// Expression statement: `call_f1();` + Expr(ExprId), + + /// Let binding: `let x = call_f3();` + Let { + pattern: PatId, + type_annotation: Option, + initializer: Option, + }, + + /// Return statement: `return "minor";` + Return(Option), + + /// Missing/error statement + Missing, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct MatchArm { + pub pattern: PatId, + pub expr: ExprId, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Pattern { + /// Literal pattern: `42`, `"hello"` + Literal(Literal), + + /// Path pattern: `SomeVariant` + Path(Name), + + /// Binding pattern: `x`, `user` + Binding(Name), + + /// Wildcard: `_` + Wildcard, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Literal { + String(String), + Int(i64), + Float(String), + Bool(bool), + Null, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum BinaryOp { + // Arithmetic + Add, + Sub, + Mul, + Div, + Mod, + + // Comparison + Eq, + Ne, + Lt, + Le, + Gt, + Ge, + + // Logical + And, + Or, + + // Bitwise + BitAnd, + BitOr, + BitXor, + Shl, + Shr, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum UnaryOp { + Not, + Neg, +} + +impl FunctionBody { + /// Lower a function body from CST to HIR. + /// + /// The CST already tells us if it's LLM or Expr via node type! + pub fn lower(func_node: &baml_syntax::ast::FunctionDef) -> Arc { + // Check which body type we have + if let Some(llm_body) = func_node.llm_body() { + Arc::new(FunctionBody::Llm(Self::lower_llm_body(&llm_body))) + } else if let Some(expr_body) = func_node.expr_body() { + Arc::new(FunctionBody::Expr(Self::lower_expr_body(&expr_body))) + } else { + Arc::new(FunctionBody::Missing) + } + } + + fn lower_llm_body(llm_body: &baml_syntax::ast::LlmFunctionBody) -> LlmBody { + let mut client = None; + let mut prompt = None; + + // Extract client from CLIENT_FIELD + for child in llm_body.syntax().children() { + if child.kind() == baml_syntax::SyntaxKind::CLIENT_FIELD { + // CLIENT_FIELD has: KW_CLIENT "client" WORD "GPT4" + if let Some(client_name) = child + .children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .filter(|t| t.kind() == baml_syntax::SyntaxKind::WORD) + .nth(0) + { + client = Some(Name::new(client_name.text())); + } + } else if child.kind() == baml_syntax::SyntaxKind::PROMPT_FIELD { + // PROMPT_FIELD has: WORD "prompt" RAW_STRING_LITERAL (node, not token!) + // The RAW_STRING_LITERAL node contains the full text including delimiters + if let Some(prompt_node) = child + .children() + .find(|n| n.kind() == baml_syntax::SyntaxKind::RAW_STRING_LITERAL) + { + let text = prompt_node.text().to_string(); + prompt = Some(Self::parse_prompt(&text)); + } + } + } + + LlmBody { client, prompt } + } + + fn parse_prompt(prompt_text: &str) -> PromptTemplate { + // Strip #"..."# or "..." delimiters + let prompt_text = prompt_text.trim(); + let content = if prompt_text.starts_with("#\"") && prompt_text.ends_with("\"#") { + &prompt_text[2..prompt_text.len() - 2] + } else if prompt_text.starts_with('"') && prompt_text.ends_with('"') { + &prompt_text[1..prompt_text.len() - 1] + } else { + prompt_text + }; + + // Parse {{ var }} interpolations + let interpolations = Self::parse_interpolations(content); + + PromptTemplate { + text: content.to_string(), + interpolations, + } + } + + fn parse_interpolations(prompt: &str) -> Vec { + let mut interpolations = Vec::new(); + let mut offset = 0; + + while let Some(start) = prompt[offset..].find("{{") { + let abs_start = offset + start; + if let Some(end) = prompt[abs_start..].find("}}") { + let abs_end = abs_start + end; + let var_text = prompt[abs_start + 2..abs_end].trim(); + + #[allow(clippy::cast_possible_truncation)] + interpolations.push(Interpolation { + var_name: Name::new(var_text), + offset: abs_start as u32, // Prompt strings are unlikely to exceed 4GB + }); + + offset = abs_end + 2; + } else { + break; + } + } + + interpolations + } + + fn lower_expr_body(expr_body: &baml_syntax::ast::ExprFunctionBody) -> ExprBody { + let mut ctx = LoweringContext::new(); + + // The EXPR_FUNCTION_BODY contains a BLOCK_EXPR as its child + // which contains all the statements and expressions + let root_expr = expr_body + .syntax() + .children() + .find_map(baml_syntax::ast::BlockExpr::cast) + .map(|block| ctx.lower_block_expr(&block)); + + ExprBody { + exprs: ctx.exprs, + stmts: ctx.stmts, + root_expr, + } + } +} + +struct LoweringContext { + exprs: Arena, + stmts: Arena, + #[allow(dead_code)] // Will be used when pattern lowering is implemented + patterns: Arena, +} + +impl LoweringContext { + fn new() -> Self { + Self { + exprs: Arena::new(), + stmts: Arena::new(), + patterns: Arena::new(), + } + } + + fn lower_block_expr(&mut self, _block: &baml_syntax::ast::BlockExpr) -> ExprId { + // TODO: Implement proper block expression lowering + // For now, just return a placeholder + self.exprs.alloc(Expr::Missing) + } +} diff --git a/baml_language/crates/baml_hir/src/item_tree.rs b/baml_language/crates/baml_hir/src/item_tree.rs index 0c4fefefa8..e3bde38744 100644 --- a/baml_language/crates/baml_hir/src/item_tree.rs +++ b/baml_language/crates/baml_hir/src/item_tree.rs @@ -114,26 +114,11 @@ impl ItemTree { /// A function definition in the `ItemTree`. /// -/// This is the minimal representation - just the signature. -/// Function bodies are stored separately for incrementality. +/// This is the MINIMAL representation - ONLY the name. +/// Everything else (params, return type, body) is in separate queries for incrementality. #[derive(Debug, Clone, PartialEq, Eq)] pub struct Function { pub name: Name, - pub params: Vec, - pub return_type: TypeRef, - - /// Unresolved client reference (name only). - pub client_ref: Option, - - /// Future: Type parameters for generic functions. - pub type_params: Vec, -} - -/// Function parameter. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Param { - pub name: Name, - pub type_ref: TypeRef, } /// A class definition. diff --git a/baml_language/crates/baml_hir/src/lib.rs b/baml_language/crates/baml_hir/src/lib.rs index fe7febe0dd..4fdc5786f7 100644 --- a/baml_language/crates/baml_hir/src/lib.rs +++ b/baml_language/crates/baml_hir/src/lib.rs @@ -23,19 +23,24 @@ use baml_syntax::SyntaxNode; use rowan::ast::AstNode; // Module declarations +mod body; mod container; mod ids; mod item_tree; mod loc; mod path; +mod signature; mod type_ref; // Re-exports +pub use body::*; pub use container::{BlockId, ContainerId, LocalModuleId, ModuleId, ProjectId}; pub use ids::*; pub use item_tree::*; pub use loc::*; pub use path::*; +// Re-export signature types, but avoid TypeParam conflict with item_tree +pub use signature::{CustomAttribute, FunctionAttributes, FunctionSignature, Param}; pub use type_ref::*; // @@ -334,25 +339,15 @@ fn lower_enum(node: &SyntaxNode) -> Option { }) } -/// Extract function definition from CST. +/// Extract function definition from CST - MINIMAL VERSION. +/// Only extracts the name. Signature and body are in separate queries. fn lower_function(node: &SyntaxNode) -> Option { use baml_syntax::ast::FunctionDef; let func = FunctionDef::cast(node.clone())?; let name = func.name()?.text().into(); - // TODO: Extract parameters, return type, client once AST has methods - let params = vec![]; - let return_type = TypeRef::Unknown; - let client_ref = None; - - Some(Function { - name, - params, - return_type, - client_ref, - type_params: vec![], - }) + Some(Function { name }) } /// Extract type alias from CST. diff --git a/baml_language/crates/baml_hir/src/signature.rs b/baml_language/crates/baml_hir/src/signature.rs new file mode 100644 index 0000000000..1680d46a0a --- /dev/null +++ b/baml_language/crates/baml_hir/src/signature.rs @@ -0,0 +1,148 @@ +//! Function signatures (parameters, return types, generics). +//! +//! Separated from `ItemTree` to provide fine-grained incrementality. +//! Signature changes invalidate type checking, but not name resolution. + +use crate::{Name, type_ref::TypeRef}; +use rowan::ast::AstNode; +use std::sync::Arc; + +/// The signature of a function (everything except the body). +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct FunctionSignature { + /// Function name (duplicated from `ItemTree` for convenience) + pub name: Name, + + /// Function parameters + pub params: Vec, + + /// Return type + pub return_type: TypeRef, + + /// Type parameters (generics) + pub type_params: Vec, + + /// Attributes/modifiers + pub attrs: FunctionAttributes, +} + +/// Function parameter. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Param { + pub name: Name, + pub type_ref: TypeRef, +} + +/// Type parameter (for generic functions). +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TypeParam { + pub name: Name, + // Future: bounds, defaults, etc. +} + +/// Function attributes and modifiers. +#[derive(Debug, Clone, PartialEq, Eq, Default)] +pub struct FunctionAttributes { + /// Whether this is a streaming function + pub is_streaming: bool, + + /// Whether this is async + pub is_async: bool, + + /// Custom attributes (@@retry, @@cache, etc.) + pub custom_attrs: Vec, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CustomAttribute { + pub name: Name, + pub args: Vec, // Simplified for now +} + +impl FunctionSignature { + /// Lower a function signature from CST. + pub fn lower(func_node: &baml_syntax::ast::FunctionDef) -> Arc { + let name = func_node + .name() + .map(|n| Name::new(n.text())) + .unwrap_or_else(|| Name::new("UnnamedFunction")); + + // Extract parameters - manually since Parameter doesn't have accessor methods yet + let mut params = Vec::new(); + if let Some(param_list) = func_node.param_list() { + for param_node in param_list.params() { + // PARAMETER node contains: WORD (name), optionally COLON, TYPE_EXPR + let mut param_name = None; + let mut param_type = TypeRef::Unknown; + + for child in param_node.syntax().children_with_tokens() { + if let Some(token) = child.as_token() { + if token.kind() == baml_syntax::SyntaxKind::WORD && param_name.is_none() { + param_name = Some(Name::new(token.text())); + } + } else if let Some(node) = child.as_node() { + if let Some(type_expr) = baml_syntax::ast::TypeExpr::cast(node.clone()) { + param_type = lower_type_ref(&type_expr); + } + } + } + + if let Some(name) = param_name { + params.push(Param { + name, + type_ref: param_type, + }); + } + } + } + + // Extract return type + let return_type = func_node + .return_type() + .map(|t| lower_type_ref(&t)) + .unwrap_or(TypeRef::Unknown); + + // Extract type parameters (future work) + let type_params = vec![]; + + // Extract attributes (future work) + let attrs = FunctionAttributes::default(); + + Arc::new(FunctionSignature { + name, + params, + return_type, + type_params, + attrs, + }) + } +} + +/// Lower a type reference from CST. +fn lower_type_ref(node: &baml_syntax::ast::TypeExpr) -> TypeRef { + let text = node.syntax().text().to_string(); + let text = text.trim(); + + match text { + "int" => TypeRef::Int, + "float" => TypeRef::Float, + "string" => TypeRef::String, + "bool" => TypeRef::Bool, + "null" => TypeRef::Null, + "image" => TypeRef::Image, + "audio" => TypeRef::Audio, + "video" => TypeRef::Video, + "pdf" => TypeRef::Pdf, + _ => { + if let Some(inner_text) = text.strip_suffix('?') { + let inner = TypeRef::named(inner_text.into()); + TypeRef::optional(inner) + } else if let Some(inner_text) = text.strip_suffix("[]") { + let inner = TypeRef::named(inner_text.into()); + TypeRef::list(inner) + } else { + TypeRef::named(text.into()) + } + } + } +} diff --git a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap index 37e85a725b..0aa7a36052 100644 --- a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap @@ -4,10 +4,20 @@ expression: output --- === HIR ITEMS === function GetUser { - return_type: Unknown + params: [id: Int] + return: Path(Path { segments: ["User"], kind: Plain }) + body: Llm { + client: GPT4 + prompt: "Get user {{id}}" + interpolations: [id] + } } function GetStatus { - return_type: Unknown + return: Path(Path { segments: ["Status"], kind: Plain }) + body: Llm { + client: GPT4 + prompt: "Get status" + } } class User { id: Int diff --git a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap index 831d8468f4..19bea4fca4 100644 --- a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap @@ -4,7 +4,13 @@ expression: output --- === HIR ITEMS === function GetTodo { - return_type: Unknown + return: Path(Path { segments: ["Todo"], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } class Todo { id: Int diff --git a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap index 6063602916..006118b7f7 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap @@ -4,29 +4,71 @@ expression: output --- === HIR ITEMS === function stringArray { - return_type: Unknown + return: List(Path(Path { segments: ["string"], kind: Plain })) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function intArray { - return_type: Unknown + return: List(Path(Path { segments: ["int"], kind: Plain })) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function floatArray { - return_type: Unknown + return: List(Path(Path { segments: ["float"], kind: Plain })) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function boolArray { - return_type: Unknown + return: List(Path(Path { segments: ["bool"], kind: Plain })) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function pointArray { - return_type: Unknown + return: List(Path(Path { segments: ["Point"], kind: Plain })) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } class Point { x: Int y: Int } function point { - return_type: Unknown + return: Path(Path { segments: ["Point"], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function vec2d { - return_type: Unknown + return: Path(Path { segments: ["Vec2D"], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } class Point { x: Int @@ -37,14 +79,38 @@ class Vec2D { q: Path(Path { segments: ["Point"], kind: Plain }) } function stringValues { - return_type: Unknown + return: Path(Path { segments: ["map"], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function intValues { - return_type: Unknown + return: Path(Path { segments: ["map"], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function floatValues { - return_type: Unknown + return: Path(Path { segments: ["map"], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function boolValues { - return_type: Unknown + return: Path(Path { segments: ["map"], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap index 915f7b1533..f1385ed986 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap @@ -4,7 +4,13 @@ expression: output --- === HIR ITEMS === function Foo { - return_type: Unknown + return: Path(Path { segments: [""], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } enum Status { EnumVariant { name: "ACTIVE" } @@ -17,10 +23,18 @@ class User { field: Int } function Incomplete { - return_type: Unknown + params: [param1: String] + return: Unknown + body: Missing } function NextFunction { - return_type: Unknown + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } class Partial { field1: Path(Path { segments: ["str"], kind: Plain }) diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap index 8a882ba171..59b8070aa8 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap @@ -4,16 +4,43 @@ expression: output --- === HIR ITEMS === function Calculate { - return_type: Unknown + return: Int + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function ConditionalLogic { - return_type: Unknown + params: [age: Int] + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function HandleStatus { - return_type: Unknown + params: [status: Path(Path { segments: ["Status"], kind: Plain })] + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function ComplexMatch { - return_type: Unknown + params: [value: Int] + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } enum Status { EnumVariant { name: "PENDING" } @@ -22,5 +49,11 @@ enum Status { EnumVariant { name: "SUSPENDED" } } function TestPrecedence { - return_type: Unknown + return: Bool + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap index 6c6839be6a..2500efa3fc 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap @@ -4,32 +4,85 @@ expression: output --- === HIR ITEMS === function Ambiguous { - return_type: Unknown + params: [input: String] + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function AnotherLLM { - return_type: Unknown + params: [input: String] + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function ProcessData { - return_type: Unknown + params: [data: Path(Path { segments: ["JsonData"], kind: Plain })] + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } class JsonData { field1: Int field2: Int } function ExtractData { - return_type: Unknown + params: [text: String] + return: Path(Path { segments: ["JsonData"], kind: Plain }) + body: Llm { + client: GPT4 + prompt: "\n Extract structured data from: {{ text }}\n Return as JSON.\n " + interpolations: [text] + } } function LLMAnalyze { - return_type: Unknown + params: [text: String] + return: Path(Path { segments: ["Analysis"], kind: Plain }) + body: Llm { + client: GPT4 + prompt: "\n Analyze the following text:\n {{ text }}\n \n Return an Analysis object with sentiment and keywords.\n " + interpolations: [text] + } } function ProcessAnalysis { - return_type: Unknown + params: [analysis: Path(Path { segments: ["Analysis"], kind: Plain })] + return: String + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function ChainedProcess { - return_type: Unknown + params: [input: String] + return: String + body: Llm { + client: GPT4 + prompt: "\n Process this through multiple steps:\n 1. {{ input }}\n 2. Transform it\n 3. Return result\n " + interpolations: [input] + } } function SimpleCalc { - return_type: Unknown + params: [a: Int, b: Int] + return: Int + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } class Analysis { sentiment: String diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap index 7ab98185dd..3fe78c15a4 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap @@ -13,10 +13,17 @@ class StringTorture { long: String } function DeepExpression { - return_type: Unknown + return: Int + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } function ComplexType { - return_type: Unknown + return: Optional(Path(Path { segments: ["map(0): Missing + ] + root: Idx::(0) + } } diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap index 6b698fdc3d..c00ac7033d 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap @@ -4,7 +4,13 @@ expression: output --- === HIR ITEMS === function FormatMessage { - return_type: Unknown + params: [name: String] + return: String + body: Llm { + client: GPT4 + prompt: "\n Generate a message for \"{{ name }}\"\n Include quotes like: \"Welcome, '{{ name }}'!\"\n " + interpolations: [name, name] + } } class NestedQuotes { single_in_double: String @@ -22,7 +28,13 @@ class NestedQuotes { value: Path(Path { segments: [""], kind: Plain }) } function ProcessText { - return_type: Unknown + params: [input: String] + return: String + body: Llm { + client: GPT4 + prompt: "\n Process the following text:\n {{ input }}\n \n Return the processed result.\n " + interpolations: [input] + } } class RawStrings { simple: String @@ -31,7 +43,13 @@ class RawStrings { multiline: String } function GetRole { - return_type: Unknown + return: Path(Path { segments: ["\"admin\" | \"user\" | \"guest\""], kind: Plain }) + body: Expr { + exprs: [ + Idx::(0): Missing + ] + root: Idx::(0) + } } class Messages { greeting: String diff --git a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap index 2b70aebe0a..60d65214e3 100644 --- a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__03_hir.snap @@ -4,7 +4,13 @@ expression: output --- === HIR ITEMS === function HelloWorld { - return_type: Unknown + params: [name: String] + return: String + body: Llm { + client: GPT4 + prompt: "\n Say hello to {{name}}\n " + interpolations: [name] + } } class User { name: String diff --git a/baml_language/crates/baml_tests/src/lib.rs b/baml_language/crates/baml_tests/src/lib.rs index 9bb736d603..5e8699a999 100644 --- a/baml_language/crates/baml_tests/src/lib.rs +++ b/baml_language/crates/baml_tests/src/lib.rs @@ -73,17 +73,79 @@ fn format_hir_file( match item { ItemId::Function(func_id) => { let func = &item_tree[func_id.id(db)]; + let sig = baml_db::function_signature(db, source_file, *func_id); + let body = baml_db::function_body(db, source_file, *func_id); + writeln!(result, "function {} {{", func.name).unwrap(); - if !func.params.is_empty() { - writeln!(result, " params: {:?}", func.params).unwrap(); - } - writeln!(result, " return_type: {:?}", func.return_type).unwrap(); - if let Some(ref client) = func.client_ref { - writeln!(result, " client: {:?}", client).unwrap(); + + // Show signature + if !sig.params.is_empty() { + write!(result, " params: [").unwrap(); + for (i, param) in sig.params.iter().enumerate() { + if i > 0 { + write!(result, ", ").unwrap(); + } + write!(result, "{}: {:?}", param.name, param.type_ref).unwrap(); + } + writeln!(result, "]").unwrap(); } - if !func.type_params.is_empty() { - writeln!(result, " type_params: {:?}", func.type_params).unwrap(); + writeln!(result, " return: {:?}", sig.return_type).unwrap(); + + // Show body + match body.as_ref() { + baml_db::baml_hir::FunctionBody::Llm(llm) => { + writeln!(result, " body: Llm {{").unwrap(); + if let Some(ref client) = llm.client { + writeln!(result, " client: {}", client).unwrap(); + } + if let Some(ref prompt) = llm.prompt { + writeln!(result, " prompt: {:?}", prompt.text).unwrap(); + if !prompt.interpolations.is_empty() { + write!(result, " interpolations: [").unwrap(); + for (i, interp) in prompt.interpolations.iter().enumerate() { + if i > 0 { + write!(result, ", ").unwrap(); + } + write!(result, "{}", interp.var_name).unwrap(); + } + writeln!(result, "]").unwrap(); + } + } + writeln!(result, " }}").unwrap(); + } + baml_db::baml_hir::FunctionBody::Expr(expr_body) => { + writeln!(result, " body: Expr {{").unwrap(); + + // Display all expressions + if !expr_body.exprs.is_empty() { + writeln!(result, " exprs: [").unwrap(); + for (idx, expr) in expr_body.exprs.iter() { + writeln!(result, " {:?}: {:?}", idx, expr).unwrap(); + } + writeln!(result, " ]").unwrap(); + } + + // Display all statements + if !expr_body.stmts.is_empty() { + writeln!(result, " stmts: [").unwrap(); + for (idx, stmt) in expr_body.stmts.iter() { + writeln!(result, " {:?}: {:?}", idx, stmt).unwrap(); + } + writeln!(result, " ]").unwrap(); + } + + // Display root expression + if let Some(root) = expr_body.root_expr { + writeln!(result, " root: {:?}", root).unwrap(); + } + + writeln!(result, " }}").unwrap(); + } + baml_db::baml_hir::FunctionBody::Missing => { + writeln!(result, " body: Missing").unwrap(); + } } + writeln!(result, "}}").unwrap(); } ItemId::Class(class_id) => { From 32c086a7d33bcefd4d9c027490929662e1f1dd07 Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Tue, 18 Nov 2025 18:39:22 +0100 Subject: [PATCH 04/14] Separate type params --- baml_language/crates/baml_db/src/lib.rs | 1 - baml_language/crates/baml_hir/src/generics.rs | 55 +++++++++++++++++++ .../crates/baml_hir/src/item_tree.rs | 26 ++------- baml_language/crates/baml_hir/src/lib.rs | 51 +++++++++++++---- .../crates/baml_hir/src/signature.rs | 43 ++++----------- baml_language/crates/baml_syntax/src/ast.rs | 15 +++++ baml_language/crates/baml_tests/src/lib.rs | 12 +--- 7 files changed, 126 insertions(+), 77 deletions(-) create mode 100644 baml_language/crates/baml_hir/src/generics.rs diff --git a/baml_language/crates/baml_db/src/lib.rs b/baml_language/crates/baml_db/src/lib.rs index 31eeed1a5e..a4dfa62bb7 100644 --- a/baml_language/crates/baml_db/src/lib.rs +++ b/baml_language/crates/baml_db/src/lib.rs @@ -121,7 +121,6 @@ pub fn function_signature<'db>( name: func.name.clone(), params: vec![], return_type: baml_hir::TypeRef::Unknown, - type_params: vec![], attrs: baml_hir::FunctionAttributes::default(), }) } diff --git a/baml_language/crates/baml_hir/src/generics.rs b/baml_language/crates/baml_hir/src/generics.rs new file mode 100644 index 0000000000..0a047a723c --- /dev/null +++ b/baml_language/crates/baml_hir/src/generics.rs @@ -0,0 +1,55 @@ +//! Generic parameters for functions and types. +//! +//! Following rust-analyzer's pattern, generic parameters are queried separately +//! from the `ItemTree` to maintain the invalidation barrier. Changes to generic +//! parameters don't invalidate the `ItemTree`. + +use baml_base::Name; +use la_arena::{Arena, Idx}; + +/// Type parameter in a generic definition. +/// +/// Example: `T` in `class Foo` +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct TypeParam { + pub name: Name, + // Future: bounds, defaults, constraints +} + +/// Local index for a type parameter within its `GenericParams`. +pub type LocalTypeParamId = Idx; + +/// Generic parameters for an item (function, class, enum, etc.). +/// +/// This is queried separately from the `ItemTree` for incrementality. +#[derive(Debug, Clone, PartialEq, Eq, Default)] +pub struct GenericParams { + /// Type parameters arena. + pub type_params: Arena, + // Future: const parameters, lifetime parameters, where clauses +} + +impl GenericParams { + /// Create empty generic parameters. + pub fn new() -> Self { + Self::default() + } + + /// Check if there are any generic parameters. + pub fn is_empty(&self) -> bool { + self.type_params.is_empty() + } + + /// Get all type parameter names. + pub fn type_param_names(&self) -> impl Iterator { + self.type_params.iter().map(|(_, p)| &p.name) + } +} + +impl std::ops::Index for GenericParams { + type Output = TypeParam; + + fn index(&self, index: LocalTypeParamId) -> &Self::Output { + &self.type_params[index] + } +} diff --git a/baml_language/crates/baml_hir/src/item_tree.rs b/baml_language/crates/baml_hir/src/item_tree.rs index e3bde38744..3257d8ffa9 100644 --- a/baml_language/crates/baml_hir/src/item_tree.rs +++ b/baml_language/crates/baml_hir/src/item_tree.rs @@ -7,7 +7,6 @@ use crate::{ ids::LocalItemId, loc::{ClassMarker, ClientMarker, EnumMarker, FunctionMarker, TestMarker, TypeAliasMarker}, - path::Path, type_ref::TypeRef, }; use baml_base::Name; @@ -129,9 +128,8 @@ pub struct Class { /// Block attributes (@@dynamic, @@alias, etc.). pub is_dynamic: bool, - - /// Future: Type parameters for generic classes. - pub type_params: Vec, + // Note: Generic parameters are queried separately via generic_params() + // for incrementality - changes to generics don't invalidate ItemTree } /// Class field. @@ -146,9 +144,7 @@ pub struct Field { pub struct Enum { pub name: Name, pub variants: Vec, - - /// Future: Type parameters. - pub type_params: Vec, + // Note: Generic parameters are queried separately via generic_params() } /// Enum variant. @@ -162,9 +158,7 @@ pub struct EnumVariant { pub struct TypeAlias { pub name: Name, pub type_ref: TypeRef, - - /// Future: Type parameters for generic aliases. - pub type_params: Vec, + // Note: Generic parameters are queried separately via generic_params() } /// Client configuration. @@ -183,18 +177,6 @@ pub struct Test { pub function_refs: Vec, } -/// Type parameter (for generics, currently unused). -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct TypeParam { - pub name: Name, - - /// Type parameter bounds (T: `SomeTrait`) (future). - pub bounds: Vec, - - /// Default type (T = string) (future). - pub default: Option, -} - // // ──────────────────────────────────────────────────────── INDEX IMPLS ───── // diff --git a/baml_language/crates/baml_hir/src/lib.rs b/baml_language/crates/baml_hir/src/lib.rs index 4fdc5786f7..10099093d5 100644 --- a/baml_language/crates/baml_hir/src/lib.rs +++ b/baml_language/crates/baml_hir/src/lib.rs @@ -25,6 +25,7 @@ use rowan::ast::AstNode; // Module declarations mod body; mod container; +mod generics; mod ids; mod item_tree; mod loc; @@ -35,11 +36,12 @@ mod type_ref; // Re-exports pub use body::*; pub use container::{BlockId, ContainerId, LocalModuleId, ModuleId, ProjectId}; +pub use generics::*; pub use ids::*; pub use item_tree::*; pub use loc::*; pub use path::*; -// Re-export signature types, but avoid TypeParam conflict with item_tree +// Re-export signature types explicitly (no wildcards to avoid conflicts) pub use signature::{CustomAttribute, FunctionAttributes, FunctionSignature, Param}; pub use type_ref::*; @@ -125,6 +127,40 @@ pub fn project_items(db: &dyn Db, root: baml_workspace::ProjectRoot) -> ProjectI ProjectItems::new(db, all_items) } +/// Tracked: Get generic parameters for a function. +/// +/// This is queried separately from `ItemTree` for incrementality - changes to +/// generic parameters don't invalidate the `ItemTree`. +/// +/// For now, this returns empty generic parameters since BAML doesn't currently +/// parse generic syntax. Future work will extract `` from the CST. +#[salsa::tracked] +pub fn function_generic_params(_db: &dyn Db, _func: FunctionId<'_>) -> Arc { + // TODO: Extract generic parameters from CST when BAML adds generic syntax + Arc::new(GenericParams::new()) +} + +/// Tracked: Get generic parameters for a class. +#[salsa::tracked] +pub fn class_generic_params(_db: &dyn Db, _class: ClassId<'_>) -> Arc { + // TODO: Extract generic parameters from CST when BAML adds generic syntax + Arc::new(GenericParams::new()) +} + +/// Tracked: Get generic parameters for an enum. +#[salsa::tracked] +pub fn enum_generic_params(_db: &dyn Db, _enum: EnumId<'_>) -> Arc { + // TODO: Extract generic parameters from CST when BAML adds generic syntax + Arc::new(GenericParams::new()) +} + +/// Tracked: Get generic parameters for a type alias. +#[salsa::tracked] +pub fn type_alias_generic_params(_db: &dyn Db, _alias: TypeAliasId<'_>) -> Arc { + // TODO: Extract generic parameters from CST when BAML adds generic syntax + Arc::new(GenericParams::new()) +} + // // ──────────────────────────────────────────────────────── INTERN HELPERS ───── // @@ -281,7 +317,6 @@ fn lower_class(node: &SyntaxNode) -> Option { name, fields, is_dynamic, - type_params: vec![], // TODO: Extract type parameters }) } @@ -332,11 +367,7 @@ fn lower_enum(node: &SyntaxNode) -> Option { } } - Some(Enum { - name, - variants, - type_params: vec![], - }) + Some(Enum { name, variants }) } /// Extract function definition from CST - MINIMAL VERSION. @@ -359,11 +390,7 @@ fn lower_type_alias(node: &SyntaxNode) -> Option { let name = Name::new("TypeAlias"); let type_ref = TypeRef::Unknown; - Some(TypeAlias { - name, - type_ref, - type_params: vec![], - }) + Some(TypeAlias { name, type_ref }) } /// Extract client configuration from CST. diff --git a/baml_language/crates/baml_hir/src/signature.rs b/baml_language/crates/baml_hir/src/signature.rs index 1680d46a0a..db558ba923 100644 --- a/baml_language/crates/baml_hir/src/signature.rs +++ b/baml_language/crates/baml_hir/src/signature.rs @@ -19,11 +19,10 @@ pub struct FunctionSignature { /// Return type pub return_type: TypeRef, - /// Type parameters (generics) - pub type_params: Vec, - /// Attributes/modifiers pub attrs: FunctionAttributes, + // Note: Generic parameters are queried separately via generic_params() + // for incrementality - changes to generics don't invalidate signatures } /// Function parameter. @@ -33,13 +32,6 @@ pub struct Param { pub type_ref: TypeRef, } -/// Type parameter (for generic functions). -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct TypeParam { - pub name: Name, - // Future: bounds, defaults, etc. -} - /// Function attributes and modifiers. #[derive(Debug, Clone, PartialEq, Eq, Default)] pub struct FunctionAttributes { @@ -67,30 +59,19 @@ impl FunctionSignature { .map(|n| Name::new(n.text())) .unwrap_or_else(|| Name::new("UnnamedFunction")); - // Extract parameters - manually since Parameter doesn't have accessor methods yet + // Extract parameters let mut params = Vec::new(); if let Some(param_list) = func_node.param_list() { for param_node in param_list.params() { - // PARAMETER node contains: WORD (name), optionally COLON, TYPE_EXPR - let mut param_name = None; - let mut param_type = TypeRef::Unknown; - - for child in param_node.syntax().children_with_tokens() { - if let Some(token) = child.as_token() { - if token.kind() == baml_syntax::SyntaxKind::WORD && param_name.is_none() { - param_name = Some(Name::new(token.text())); - } - } else if let Some(node) = child.as_node() { - if let Some(type_expr) = baml_syntax::ast::TypeExpr::cast(node.clone()) { - param_type = lower_type_ref(&type_expr); - } - } - } + if let Some(name_token) = param_node.name() { + let type_ref = param_node + .ty() + .map(|t| lower_type_ref(&t)) + .unwrap_or(TypeRef::Unknown); - if let Some(name) = param_name { params.push(Param { - name, - type_ref: param_type, + name: Name::new(name_token.text()), + type_ref, }); } } @@ -102,9 +83,6 @@ impl FunctionSignature { .map(|t| lower_type_ref(&t)) .unwrap_or(TypeRef::Unknown); - // Extract type parameters (future work) - let type_params = vec![]; - // Extract attributes (future work) let attrs = FunctionAttributes::default(); @@ -112,7 +90,6 @@ impl FunctionSignature { name, params, return_type, - type_params, attrs, }) } diff --git a/baml_language/crates/baml_syntax/src/ast.rs b/baml_language/crates/baml_syntax/src/ast.rs index 9d06bfa3c8..bc2352cb58 100644 --- a/baml_language/crates/baml_syntax/src/ast.rs +++ b/baml_language/crates/baml_syntax/src/ast.rs @@ -132,6 +132,21 @@ impl FunctionDef { } } +impl Parameter { + /// Get the parameter name. + pub fn name(&self) -> Option { + self.syntax + .children_with_tokens() + .filter_map(rowan::NodeOrToken::into_token) + .find(|token| token.kind() == SyntaxKind::WORD) + } + + /// Get the parameter type. + pub fn ty(&self) -> Option { + self.syntax.children().find_map(TypeExpr::cast) + } +} + impl ParameterList { /// Get all parameters. pub fn params(&self) -> impl Iterator { diff --git a/baml_language/crates/baml_tests/src/lib.rs b/baml_language/crates/baml_tests/src/lib.rs index 5e8699a999..9470507ee6 100644 --- a/baml_language/crates/baml_tests/src/lib.rs +++ b/baml_language/crates/baml_tests/src/lib.rs @@ -157,9 +157,7 @@ fn format_hir_file( if class.is_dynamic { writeln!(result, " @@dynamic").unwrap(); } - if !class.type_params.is_empty() { - writeln!(result, " type_params: {:?}", class.type_params).unwrap(); - } + // Note: Generic parameters are queried separately via generic_params() writeln!(result, "}}").unwrap(); } ItemId::Enum(enum_id) => { @@ -168,17 +166,13 @@ fn format_hir_file( for variant in &enum_def.variants { writeln!(result, " {:?}", variant).unwrap(); } - if !enum_def.type_params.is_empty() { - writeln!(result, " type_params: {:?}", enum_def.type_params).unwrap(); - } + // Note: Generic parameters are queried separately via generic_params() writeln!(result, "}}").unwrap(); } ItemId::TypeAlias(alias_id) => { let alias = &item_tree[alias_id.id(db)]; write!(result, "type {} = {:?}", alias.name, alias.type_ref).unwrap(); - if !alias.type_params.is_empty() { - write!(result, " <{:?}>", alias.type_params).unwrap(); - } + // Note: Generic parameters are queried separately via generic_params() writeln!(result).unwrap(); } ItemId::Client(client_id) => { From ba3c900e3bcae78249cb7543941e49c925710fb5 Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Tue, 18 Nov 2025 19:24:39 +0100 Subject: [PATCH 05/14] Arenas --- baml_language/crates/baml_hir/src/ids.rs | 33 ++++ .../crates/baml_hir/src/item_tree.rs | 183 +++++++++++------- baml_language/crates/baml_hir/src/lib.rs | 43 ++-- .../baml_tests__parser_stress__03_hir.snap | 2 +- 4 files changed, 178 insertions(+), 83 deletions(-) diff --git a/baml_language/crates/baml_hir/src/ids.rs b/baml_language/crates/baml_hir/src/ids.rs index cf72eb8374..f55ee8c8b2 100644 --- a/baml_language/crates/baml_hir/src/ids.rs +++ b/baml_language/crates/baml_hir/src/ids.rs @@ -112,6 +112,39 @@ impl LocalItemId { } } + /// Create a `LocalItemId` from a name (content-based, not position-based). + /// This provides position-independence: the same name always produces the same ID. + pub fn from_name(name: &baml_base::Name) -> Self { + use std::collections::hash_map::DefaultHasher; + use std::hash::{Hash, Hasher}; + + let mut hasher = DefaultHasher::new(); + name.hash(&mut hasher); + let hash = hasher.finish(); + + // Use the lower 32 bits of the hash (truncation is intentional) + #[allow(clippy::cast_possible_truncation)] + let index = hash as u32; + + LocalItemId { + index, + _phantom: PhantomData, + } + } + + /// Convert from an la-arena Idx to `LocalItemId`. + pub fn from_arena(idx: la_arena::Idx) -> Self { + LocalItemId { + index: idx.into_raw().into_u32(), + _phantom: PhantomData, + } + } + + /// Convert to an la-arena Idx. + pub fn to_arena(self) -> la_arena::Idx { + la_arena::Idx::from_raw(la_arena::RawIdx::from_u32(self.index)) + } + pub const fn as_u32(self) -> u32 { self.index } diff --git a/baml_language/crates/baml_hir/src/item_tree.rs b/baml_language/crates/baml_hir/src/item_tree.rs index 3257d8ffa9..44581e937f 100644 --- a/baml_language/crates/baml_hir/src/item_tree.rs +++ b/baml_language/crates/baml_hir/src/item_tree.rs @@ -10,105 +10,128 @@ use crate::{ type_ref::TypeRef, }; use baml_base::Name; +use la_arena::{Arena, Idx}; +use std::collections::HashMap; use std::ops::Index; /// Position-independent item storage for a container. /// /// This is the core HIR data structure. Items are stored in arenas /// with stable indices that survive source code edits. -#[derive(Debug, Clone, Default, PartialEq, Eq)] +/// +/// **Key property:** Items are indexed by name, not source position. +/// Adding an item in the middle of the file doesn't change the `LocalItemIds` +/// of other items because `LocalItemIds` are derived from names, not arena indices. +#[derive(Debug, Clone, PartialEq, Eq)] pub struct ItemTree { - pub functions: Vec, - pub classes: Vec, - pub enums: Vec, - pub type_aliases: Vec, - pub clients: Vec, - pub tests: Vec, + pub functions: Arena, + pub classes: Arena, + pub enums: Arena, + pub type_aliases: Arena, + pub clients: Arena, + pub tests: Arena, + + // Map from content-based LocalItemId to arena Idx for lookups + pub(crate) function_map: HashMap, Idx>, + pub(crate) class_map: HashMap, Idx>, + pub(crate) enum_map: HashMap, Idx>, + pub(crate) type_alias_map: HashMap, Idx>, + pub(crate) client_map: HashMap, Idx>, + pub(crate) test_map: HashMap, Idx>, +} + +impl Default for ItemTree { + fn default() -> Self { + Self::new() + } } impl ItemTree { /// Create a new empty `ItemTree`. pub fn new() -> Self { - Self::default() + Self { + functions: Arena::new(), + classes: Arena::new(), + enums: Arena::new(), + type_aliases: Arena::new(), + clients: Arena::new(), + tests: Arena::new(), + function_map: HashMap::new(), + class_map: HashMap::new(), + enum_map: HashMap::new(), + type_alias_map: HashMap::new(), + client_map: HashMap::new(), + test_map: HashMap::new(), + } } /// Add a function and return its local ID. - #[allow(clippy::cast_possible_truncation)] + /// `LocalItemId` is derived from the function's name for position-independence. pub fn alloc_function(&mut self, func: Function) -> LocalItemId { - let id = self.functions.len(); - self.functions.push(func); - LocalItemId::new(id as u32) + let id = LocalItemId::from_name(&func.name); + let arena_idx = self.functions.alloc(func); + self.function_map.insert(id, arena_idx); + id } /// Add a class and return its local ID. - #[allow(clippy::cast_possible_truncation)] + /// `LocalItemId` is derived from the class's name for position-independence. pub fn alloc_class(&mut self, class: Class) -> LocalItemId { - let id = self.classes.len(); - self.classes.push(class); - LocalItemId::new(id as u32) + let id = LocalItemId::from_name(&class.name); + let arena_idx = self.classes.alloc(class); + self.class_map.insert(id, arena_idx); + id } /// Add an enum and return its local ID. - #[allow(clippy::cast_possible_truncation)] + /// `LocalItemId` is derived from the enum's name for position-independence. pub fn alloc_enum(&mut self, enum_def: Enum) -> LocalItemId { - let id = self.enums.len(); - self.enums.push(enum_def); - LocalItemId::new(id as u32) + let id = LocalItemId::from_name(&enum_def.name); + let arena_idx = self.enums.alloc(enum_def); + self.enum_map.insert(id, arena_idx); + id } /// Add a type alias and return its local ID. - #[allow(clippy::cast_possible_truncation)] - pub fn alloc_type_alias(&mut self, alias: TypeAlias) -> LocalItemId { - let id = self.type_aliases.len(); - self.type_aliases.push(alias); - LocalItemId::new(id as u32) + /// `LocalItemId` is derived from the type alias's name for position-independence. + /// If there's a name collision, appends a counter to make it unique. + pub fn alloc_type_alias(&mut self, mut alias: TypeAlias) -> LocalItemId { + let mut id = LocalItemId::from_name(&alias.name); + + // Handle name collisions by appending counter + let mut counter = 0; + while self.type_alias_map.contains_key(&id) { + counter += 1; + let collision_name = Name::new(format!("{}_{}", alias.name.as_str(), counter)); + id = LocalItemId::from_name(&collision_name); + alias.name = collision_name; + } + + let arena_idx = self.type_aliases.alloc(alias); + self.type_alias_map.insert(id, arena_idx); + id } /// Add a client and return its local ID. - #[allow(clippy::cast_possible_truncation)] + /// `LocalItemId` is derived from the client's name for position-independence. pub fn alloc_client(&mut self, client: Client) -> LocalItemId { - let id = self.clients.len(); - self.clients.push(client); - LocalItemId::new(id as u32) + let id = LocalItemId::from_name(&client.name); + let arena_idx = self.clients.alloc(client); + self.client_map.insert(id, arena_idx); + id } /// Add a test and return its local ID. - #[allow(clippy::cast_possible_truncation)] + /// `LocalItemId` is derived from the test's name for position-independence. pub fn alloc_test(&mut self, test: Test) -> LocalItemId { - let id = self.tests.len(); - self.tests.push(test); - LocalItemId::new(id as u32) - } - - /// Get a function by local ID. - pub fn function(&self, id: LocalItemId) -> Option<&Function> { - self.functions.get(id.as_usize()) - } - - /// Get a class by local ID. - pub fn class(&self, id: LocalItemId) -> Option<&Class> { - self.classes.get(id.as_usize()) - } - - /// Get an enum by local ID. - pub fn enum_def(&self, id: LocalItemId) -> Option<&Enum> { - self.enums.get(id.as_usize()) - } - - /// Get a type alias by local ID. - pub fn type_alias(&self, id: LocalItemId) -> Option<&TypeAlias> { - self.type_aliases.get(id.as_usize()) - } - - /// Get a client by local ID. - pub fn client(&self, id: LocalItemId) -> Option<&Client> { - self.clients.get(id.as_usize()) + let id = LocalItemId::from_name(&test.name); + let arena_idx = self.tests.alloc(test); + self.test_map.insert(id, arena_idx); + id } - /// Get a test by local ID. - pub fn test(&self, id: LocalItemId) -> Option<&Test> { - self.tests.get(id.as_usize()) - } + // Note: Use the Index implementations instead of getter methods. + // Example: let func = &item_tree[func_id]; } /// A function definition in the `ItemTree`. @@ -185,7 +208,11 @@ pub struct Test { impl Index> for ItemTree { type Output = Function; fn index(&self, index: LocalItemId) -> &Self::Output { - &self.functions[index.as_usize()] + let arena_idx = self + .function_map + .get(&index) + .expect("Function not found in ItemTree"); + &self.functions[*arena_idx] } } @@ -193,7 +220,11 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Class; fn index(&self, index: LocalItemId) -> &Self::Output { - &self.classes[index.as_usize()] + let arena_idx = self + .class_map + .get(&index) + .expect("Class not found in ItemTree"); + &self.classes[*arena_idx] } } @@ -201,7 +232,11 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Enum; fn index(&self, index: LocalItemId) -> &Self::Output { - &self.enums[index.as_usize()] + let arena_idx = self + .enum_map + .get(&index) + .expect("Enum not found in ItemTree"); + &self.enums[*arena_idx] } } @@ -209,7 +244,11 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = TypeAlias; fn index(&self, index: LocalItemId) -> &Self::Output { - &self.type_aliases[index.as_usize()] + let arena_idx = self + .type_alias_map + .get(&index) + .expect("TypeAlias not found in ItemTree"); + &self.type_aliases[*arena_idx] } } @@ -217,7 +256,11 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Client; fn index(&self, index: LocalItemId) -> &Self::Output { - &self.clients[index.as_usize()] + let arena_idx = self + .client_map + .get(&index) + .expect("Client not found in ItemTree"); + &self.clients[*arena_idx] } } @@ -225,6 +268,10 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Test; fn index(&self, index: LocalItemId) -> &Self::Output { - &self.tests[index.as_usize()] + let arena_idx = self + .test_map + .get(&index) + .expect("Test not found in ItemTree"); + &self.tests[*arena_idx] } } diff --git a/baml_language/crates/baml_hir/src/lib.rs b/baml_language/crates/baml_hir/src/lib.rs index 10099093d5..12360ff36e 100644 --- a/baml_language/crates/baml_hir/src/lib.rs +++ b/baml_language/crates/baml_hir/src/lib.rs @@ -166,7 +166,9 @@ pub fn type_alias_generic_params(_db: &dyn Db, _alias: TypeAliasId<'_>) -> Arc( db: &'db dyn Db, file: baml_base::FileId, @@ -174,39 +176,51 @@ fn intern_all_items<'db>( ) -> Vec> { let mut items = Vec::new(); - // Intern functions - for (idx, _func) in tree.functions.iter().enumerate() { - let loc = FunctionLoc::new(db, file, LocalItemId::new(idx as u32)); + // Intern functions - sort by arena index to maintain source order + let mut funcs: Vec<_> = tree.function_map.iter().collect(); + funcs.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); + for (local_id, _arena_idx) in funcs { + let loc = FunctionLoc::new(db, file, *local_id); items.push(ItemId::Function(loc)); } // Intern classes - for (idx, _class) in tree.classes.iter().enumerate() { - let loc = ClassLoc::new(db, file, LocalItemId::new(idx as u32)); + let mut classes: Vec<_> = tree.class_map.iter().collect(); + classes.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); + for (local_id, _arena_idx) in classes { + let loc = ClassLoc::new(db, file, *local_id); items.push(ItemId::Class(loc)); } // Intern enums - for (idx, _enum) in tree.enums.iter().enumerate() { - let loc = EnumLoc::new(db, file, LocalItemId::new(idx as u32)); + let mut enums: Vec<_> = tree.enum_map.iter().collect(); + enums.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); + for (local_id, _arena_idx) in enums { + let loc = EnumLoc::new(db, file, *local_id); items.push(ItemId::Enum(loc)); } // Intern type aliases - for (idx, _alias) in tree.type_aliases.iter().enumerate() { - let loc = TypeAliasLoc::new(db, file, LocalItemId::new(idx as u32)); + let mut aliases: Vec<_> = tree.type_alias_map.iter().collect(); + aliases.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); + for (local_id, _arena_idx) in aliases { + let loc = TypeAliasLoc::new(db, file, *local_id); items.push(ItemId::TypeAlias(loc)); } // Intern clients - for (idx, _client) in tree.clients.iter().enumerate() { - let loc = ClientLoc::new(db, file, LocalItemId::new(idx as u32)); + let mut clients: Vec<_> = tree.client_map.iter().collect(); + clients.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); + for (local_id, _arena_idx) in clients { + let loc = ClientLoc::new(db, file, *local_id); items.push(ItemId::Client(loc)); } // Intern tests - for (idx, _test) in tree.tests.iter().enumerate() { - let loc = TestLoc::new(db, file, LocalItemId::new(idx as u32)); + let mut tests: Vec<_> = tree.test_map.iter().collect(); + tests.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); + for (local_id, _arena_idx) in tests { + let loc = TestLoc::new(db, file, *local_id); items.push(ItemId::Test(loc)); } @@ -387,6 +401,7 @@ fn lower_type_alias(node: &SyntaxNode) -> Option { let _alias = TypeAliasDef::cast(node.clone())?; // TODO: Extract name and type once AST has methods + // For now, use placeholder - name-based IDs handle stability let name = Name::new("TypeAlias"); let type_ref = TypeRef::Unknown; diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap index 3fe78c15a4..0e310df2e7 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap @@ -6259,7 +6259,7 @@ enum Item { EnumVariant { name: "TypeAliasDef" } } type TypeAlias = Unknown -type TypeAlias = Unknown +type TypeAlias_1 = Unknown function BodyTorture { return: Int body: Expr { From c3585c748003faa0887030c311ec27f30370aff9 Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Tue, 18 Nov 2025 19:55:08 +0100 Subject: [PATCH 06/14] Hash IDs --- baml_language/Cargo.lock | 1 + baml_language/Cargo.toml | 1 + baml_language/crates/baml_hir/Cargo.toml | 1 + .../crates/baml_hir/src/item_tree.rs | 108 +- baml_language/crates/baml_hir/src/lib.rs | 52 +- .../baml_tests__basic_types__03_hir.snap | 14 +- ...ml_tests__parser_constructors__03_hir.snap | 40 +- ..._tests__parser_error_recovery__03_hir.snap | 10 +- ...aml_tests__parser_speculative__03_hir.snap | 18 +- .../baml_tests__parser_stress__03_hir.snap | 2962 ++++++++--------- 10 files changed, 1588 insertions(+), 1619 deletions(-) diff --git a/baml_language/Cargo.lock b/baml_language/Cargo.lock index e2663a800b..aa6998d861 100644 --- a/baml_language/Cargo.lock +++ b/baml_language/Cargo.lock @@ -153,6 +153,7 @@ dependencies = [ "baml_workspace", "la-arena", "rowan", + "rustc-hash 2.1.1", "salsa", ] diff --git a/baml_language/Cargo.toml b/baml_language/Cargo.toml index 7ed66c2975..251bd80cad 100644 --- a/baml_language/Cargo.toml +++ b/baml_language/Cargo.toml @@ -40,6 +40,7 @@ la-arena = { version = "0.3" } logos = { version = "0.15" } pretty_assertions = { version = "1.4" } rowan = { version = "0.16" } +rustc-hash = { version = "2.1" } # When updating salsa, make sure to also update the revision in `fuzz/Cargo.toml` salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "cdd0b85516a52c18b8a6d17a2279a96ed6c3e198", default-features = false, features = [ "compact_str", diff --git a/baml_language/crates/baml_hir/Cargo.toml b/baml_language/crates/baml_hir/Cargo.toml index 004520d168..3500feb81d 100644 --- a/baml_language/crates/baml_hir/Cargo.toml +++ b/baml_language/crates/baml_hir/Cargo.toml @@ -24,4 +24,5 @@ baml_workspace = { workspace = true } la-arena = { workspace = true } rowan = { workspace = true } +rustc-hash = { workspace = true } salsa = { workspace = true } diff --git a/baml_language/crates/baml_hir/src/item_tree.rs b/baml_language/crates/baml_hir/src/item_tree.rs index 44581e937f..184ffcf186 100644 --- a/baml_language/crates/baml_hir/src/item_tree.rs +++ b/baml_language/crates/baml_hir/src/item_tree.rs @@ -10,34 +10,28 @@ use crate::{ type_ref::TypeRef, }; use baml_base::Name; -use la_arena::{Arena, Idx}; -use std::collections::HashMap; +use rustc_hash::FxHashMap; use std::ops::Index; /// Position-independent item storage for a container. /// -/// This is the core HIR data structure. Items are stored in arenas -/// with stable indices that survive source code edits. +/// This is the core HIR data structure. Items are stored in hash maps +/// keyed by name-based IDs, following rust-analyzer's architecture. /// /// **Key property:** Items are indexed by name, not source position. /// Adding an item in the middle of the file doesn't change the `LocalItemIds` -/// of other items because `LocalItemIds` are derived from names, not arena indices. +/// of other items because `LocalItemIds` are derived from names. +/// +/// Unlike the previous arena-based approach, items are stored directly in +/// `FxHashMap`, eliminating an extra level of indirection. #[derive(Debug, Clone, PartialEq, Eq)] pub struct ItemTree { - pub functions: Arena, - pub classes: Arena, - pub enums: Arena, - pub type_aliases: Arena, - pub clients: Arena, - pub tests: Arena, - - // Map from content-based LocalItemId to arena Idx for lookups - pub(crate) function_map: HashMap, Idx>, - pub(crate) class_map: HashMap, Idx>, - pub(crate) enum_map: HashMap, Idx>, - pub(crate) type_alias_map: HashMap, Idx>, - pub(crate) client_map: HashMap, Idx>, - pub(crate) test_map: HashMap, Idx>, + pub(crate) functions: FxHashMap, Function>, + pub(crate) classes: FxHashMap, Class>, + pub(crate) enums: FxHashMap, Enum>, + pub(crate) type_aliases: FxHashMap, TypeAlias>, + pub(crate) clients: FxHashMap, Client>, + pub(crate) tests: FxHashMap, Test>, } impl Default for ItemTree { @@ -50,18 +44,12 @@ impl ItemTree { /// Create a new empty `ItemTree`. pub fn new() -> Self { Self { - functions: Arena::new(), - classes: Arena::new(), - enums: Arena::new(), - type_aliases: Arena::new(), - clients: Arena::new(), - tests: Arena::new(), - function_map: HashMap::new(), - class_map: HashMap::new(), - enum_map: HashMap::new(), - type_alias_map: HashMap::new(), - client_map: HashMap::new(), - test_map: HashMap::new(), + functions: FxHashMap::default(), + classes: FxHashMap::default(), + enums: FxHashMap::default(), + type_aliases: FxHashMap::default(), + clients: FxHashMap::default(), + tests: FxHashMap::default(), } } @@ -69,8 +57,7 @@ impl ItemTree { /// `LocalItemId` is derived from the function's name for position-independence. pub fn alloc_function(&mut self, func: Function) -> LocalItemId { let id = LocalItemId::from_name(&func.name); - let arena_idx = self.functions.alloc(func); - self.function_map.insert(id, arena_idx); + self.functions.insert(id, func); id } @@ -78,8 +65,7 @@ impl ItemTree { /// `LocalItemId` is derived from the class's name for position-independence. pub fn alloc_class(&mut self, class: Class) -> LocalItemId { let id = LocalItemId::from_name(&class.name); - let arena_idx = self.classes.alloc(class); - self.class_map.insert(id, arena_idx); + self.classes.insert(id, class); id } @@ -87,8 +73,7 @@ impl ItemTree { /// `LocalItemId` is derived from the enum's name for position-independence. pub fn alloc_enum(&mut self, enum_def: Enum) -> LocalItemId { let id = LocalItemId::from_name(&enum_def.name); - let arena_idx = self.enums.alloc(enum_def); - self.enum_map.insert(id, arena_idx); + self.enums.insert(id, enum_def); id } @@ -100,15 +85,14 @@ impl ItemTree { // Handle name collisions by appending counter let mut counter = 0; - while self.type_alias_map.contains_key(&id) { + while self.type_aliases.contains_key(&id) { counter += 1; let collision_name = Name::new(format!("{}_{}", alias.name.as_str(), counter)); id = LocalItemId::from_name(&collision_name); alias.name = collision_name; } - let arena_idx = self.type_aliases.alloc(alias); - self.type_alias_map.insert(id, arena_idx); + self.type_aliases.insert(id, alias); id } @@ -116,8 +100,7 @@ impl ItemTree { /// `LocalItemId` is derived from the client's name for position-independence. pub fn alloc_client(&mut self, client: Client) -> LocalItemId { let id = LocalItemId::from_name(&client.name); - let arena_idx = self.clients.alloc(client); - self.client_map.insert(id, arena_idx); + self.clients.insert(id, client); id } @@ -125,12 +108,11 @@ impl ItemTree { /// `LocalItemId` is derived from the test's name for position-independence. pub fn alloc_test(&mut self, test: Test) -> LocalItemId { let id = LocalItemId::from_name(&test.name); - let arena_idx = self.tests.alloc(test); - self.test_map.insert(id, arena_idx); + self.tests.insert(id, test); id } - // Note: Use the Index implementations instead of getter methods. + // Note: Use the Index implementations for lookups. // Example: let func = &item_tree[func_id]; } @@ -208,11 +190,9 @@ pub struct Test { impl Index> for ItemTree { type Output = Function; fn index(&self, index: LocalItemId) -> &Self::Output { - let arena_idx = self - .function_map + self.functions .get(&index) - .expect("Function not found in ItemTree"); - &self.functions[*arena_idx] + .expect("Function not found in ItemTree") } } @@ -220,11 +200,9 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Class; fn index(&self, index: LocalItemId) -> &Self::Output { - let arena_idx = self - .class_map + self.classes .get(&index) - .expect("Class not found in ItemTree"); - &self.classes[*arena_idx] + .expect("Class not found in ItemTree") } } @@ -232,11 +210,7 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Enum; fn index(&self, index: LocalItemId) -> &Self::Output { - let arena_idx = self - .enum_map - .get(&index) - .expect("Enum not found in ItemTree"); - &self.enums[*arena_idx] + self.enums.get(&index).expect("Enum not found in ItemTree") } } @@ -244,11 +218,9 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = TypeAlias; fn index(&self, index: LocalItemId) -> &Self::Output { - let arena_idx = self - .type_alias_map + self.type_aliases .get(&index) - .expect("TypeAlias not found in ItemTree"); - &self.type_aliases[*arena_idx] + .expect("TypeAlias not found in ItemTree") } } @@ -256,11 +228,9 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Client; fn index(&self, index: LocalItemId) -> &Self::Output { - let arena_idx = self - .client_map + self.clients .get(&index) - .expect("Client not found in ItemTree"); - &self.clients[*arena_idx] + .expect("Client not found in ItemTree") } } @@ -268,10 +238,6 @@ impl Index> for ItemTree { impl Index> for ItemTree { type Output = Test; fn index(&self, index: LocalItemId) -> &Self::Output { - let arena_idx = self - .test_map - .get(&index) - .expect("Test not found in ItemTree"); - &self.tests[*arena_idx] + self.tests.get(&index).expect("Test not found in ItemTree") } } diff --git a/baml_language/crates/baml_hir/src/lib.rs b/baml_language/crates/baml_hir/src/lib.rs index 12360ff36e..53f3072ed4 100644 --- a/baml_language/crates/baml_hir/src/lib.rs +++ b/baml_language/crates/baml_hir/src/lib.rs @@ -168,7 +168,7 @@ pub fn type_alias_generic_params(_db: &dyn Db, _alias: TypeAliasId<'_>) -> Arc( db: &'db dyn Db, file: baml_base::FileId, @@ -176,51 +176,51 @@ fn intern_all_items<'db>( ) -> Vec> { let mut items = Vec::new(); - // Intern functions - sort by arena index to maintain source order - let mut funcs: Vec<_> = tree.function_map.iter().collect(); - funcs.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); - for (local_id, _arena_idx) in funcs { - let loc = FunctionLoc::new(db, file, *local_id); + // Intern functions - sort by ID for deterministic order + let mut funcs: Vec<_> = tree.functions.keys().copied().collect(); + funcs.sort_by_key(|id| id.as_u32()); + for local_id in funcs { + let loc = FunctionLoc::new(db, file, local_id); items.push(ItemId::Function(loc)); } // Intern classes - let mut classes: Vec<_> = tree.class_map.iter().collect(); - classes.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); - for (local_id, _arena_idx) in classes { - let loc = ClassLoc::new(db, file, *local_id); + let mut classes: Vec<_> = tree.classes.keys().copied().collect(); + classes.sort_by_key(|id| id.as_u32()); + for local_id in classes { + let loc = ClassLoc::new(db, file, local_id); items.push(ItemId::Class(loc)); } // Intern enums - let mut enums: Vec<_> = tree.enum_map.iter().collect(); - enums.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); - for (local_id, _arena_idx) in enums { - let loc = EnumLoc::new(db, file, *local_id); + let mut enums: Vec<_> = tree.enums.keys().copied().collect(); + enums.sort_by_key(|id| id.as_u32()); + for local_id in enums { + let loc = EnumLoc::new(db, file, local_id); items.push(ItemId::Enum(loc)); } // Intern type aliases - let mut aliases: Vec<_> = tree.type_alias_map.iter().collect(); - aliases.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); - for (local_id, _arena_idx) in aliases { - let loc = TypeAliasLoc::new(db, file, *local_id); + let mut aliases: Vec<_> = tree.type_aliases.keys().copied().collect(); + aliases.sort_by_key(|id| id.as_u32()); + for local_id in aliases { + let loc = TypeAliasLoc::new(db, file, local_id); items.push(ItemId::TypeAlias(loc)); } // Intern clients - let mut clients: Vec<_> = tree.client_map.iter().collect(); - clients.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); - for (local_id, _arena_idx) in clients { - let loc = ClientLoc::new(db, file, *local_id); + let mut clients: Vec<_> = tree.clients.keys().copied().collect(); + clients.sort_by_key(|id| id.as_u32()); + for local_id in clients { + let loc = ClientLoc::new(db, file, local_id); items.push(ItemId::Client(loc)); } // Intern tests - let mut tests: Vec<_> = tree.test_map.iter().collect(); - tests.sort_by_key(|(_, arena_idx)| arena_idx.into_raw()); - for (local_id, _arena_idx) in tests { - let loc = TestLoc::new(db, file, *local_id); + let mut tests: Vec<_> = tree.tests.keys().copied().collect(); + tests.sort_by_key(|id| id.as_u32()); + for local_id in tests { + let loc = TestLoc::new(db, file, local_id); items.push(ItemId::Test(loc)); } diff --git a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap index 0aa7a36052..21535aa5ff 100644 --- a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__03_hir.snap @@ -3,6 +3,13 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === +function GetStatus { + return: Path(Path { segments: ["Status"], kind: Plain }) + body: Llm { + client: GPT4 + prompt: "Get status" + } +} function GetUser { params: [id: Int] return: Path(Path { segments: ["User"], kind: Plain }) @@ -12,13 +19,6 @@ function GetUser { interpolations: [id] } } -function GetStatus { - return: Path(Path { segments: ["Status"], kind: Plain }) - body: Llm { - client: GPT4 - prompt: "Get status" - } -} class User { id: Int name: String diff --git a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap index 006118b7f7..5e6883860d 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap @@ -3,8 +3,8 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === HIR ITEMS === -function stringArray { - return: List(Path(Path { segments: ["string"], kind: Plain })) +function boolArray { + return: List(Path(Path { segments: ["bool"], kind: Plain })) body: Expr { exprs: [ Idx::(0): Missing @@ -12,8 +12,8 @@ function stringArray { root: Idx::(0) } } -function intArray { - return: List(Path(Path { segments: ["int"], kind: Plain })) +function floatArray { + return: List(Path(Path { segments: ["float"], kind: Plain })) body: Expr { exprs: [ Idx::(0): Missing @@ -21,8 +21,8 @@ function intArray { root: Idx::(0) } } -function floatArray { - return: List(Path(Path { segments: ["float"], kind: Plain })) +function pointArray { + return: List(Path(Path { segments: ["Point"], kind: Plain })) body: Expr { exprs: [ Idx::(0): Missing @@ -30,8 +30,8 @@ function floatArray { root: Idx::(0) } } -function boolArray { - return: List(Path(Path { segments: ["bool"], kind: Plain })) +function stringArray { + return: List(Path(Path { segments: ["string"], kind: Plain })) body: Expr { exprs: [ Idx::(0): Missing @@ -39,8 +39,8 @@ function boolArray { root: Idx::(0) } } -function pointArray { - return: List(Path(Path { segments: ["Point"], kind: Plain })) +function intArray { + return: List(Path(Path { segments: ["int"], kind: Plain })) body: Expr { exprs: [ Idx::(0): Missing @@ -70,16 +70,16 @@ function vec2d { root: Idx::(0) } } -class Point { - x: Int - y: Int -} class Vec2D { p: Path(Path { segments: ["Point"], kind: Plain }) q: Path(Path { segments: ["Point"], kind: Plain }) } -function stringValues { - return: Path(Path { segments: ["map"], kind: Plain }) +class Point { + x: Int + y: Int +} +function floatValues { + return: Path(Path { segments: ["map"], kind: Plain }) body: Expr { exprs: [ Idx::(0): Missing @@ -87,8 +87,8 @@ function stringValues { root: Idx::(0) } } -function intValues { - return: Path(Path { segments: ["map"], kind: Plain }) +function stringValues { + return: Path(Path { segments: ["map"], kind: Plain }) body: Expr { exprs: [ Idx::(0): Missing @@ -96,8 +96,8 @@ function intValues { root: Idx::(0) } } -function floatValues { - return: Path(Path { segments: ["map"], kind: Plain }) +function intValues { + return: Path(Path { segments: ["map"], kind: Plain }) body: Expr { exprs: [ Idx::(0): Missing diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap index f1385ed986..cf196cba25 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap @@ -22,11 +22,6 @@ class User { Another: Path(Path { segments: [""], kind: Plain }) field: Int } -function Incomplete { - params: [param1: String] - return: Unknown - body: Missing -} function NextFunction { return: String body: Expr { @@ -36,6 +31,11 @@ function NextFunction { root: Idx::(0) } } +function Incomplete { + params: [param1: String] + return: Unknown + body: Missing +} class Partial { field1: Path(Path { segments: ["str"], kind: Plain }) field2: Path(Path { segments: ["// Missing type entirely\n field3"], kind: Plain }) diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap index 2500efa3fc..4e0cdf38f5 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap @@ -46,15 +46,6 @@ function ExtractData { interpolations: [text] } } -function LLMAnalyze { - params: [text: String] - return: Path(Path { segments: ["Analysis"], kind: Plain }) - body: Llm { - client: GPT4 - prompt: "\n Analyze the following text:\n {{ text }}\n \n Return an Analysis object with sentiment and keywords.\n " - interpolations: [text] - } -} function ProcessAnalysis { params: [analysis: Path(Path { segments: ["Analysis"], kind: Plain })] return: String @@ -74,6 +65,15 @@ function ChainedProcess { interpolations: [input] } } +function LLMAnalyze { + params: [text: String] + return: Path(Path { segments: ["Analysis"], kind: Plain }) + body: Llm { + client: GPT4 + prompt: "\n Analyze the following text:\n {{ text }}\n \n Return an Analysis object with sentiment and keywords.\n " + interpolations: [text] + } +} function SimpleCalc { params: [a: Int, b: Int] return: Int diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap index 0e310df2e7..383ec71fb6 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap @@ -25,281 +25,281 @@ function ComplexType { return: Optional(Path(Path { segments: ["map Date: Wed, 19 Nov 2025 18:22:25 +0100 Subject: [PATCH 07/14] Expr lowering --- baml_language/crates/baml_hir/src/body.rs | 516 +++++++++++++++++- .../baml_tests__generics__03_hir.snap | 4 +- ...ml_tests__parser_constructors__03_hir.snap | 57 +- ..._tests__parser_error_recovery__03_hir.snap | 10 +- ...aml_tests__parser_expressions__03_hir.snap | 92 +++- ...aml_tests__parser_speculative__03_hir.snap | 76 ++- .../baml_tests__parser_stress__03_hir.snap | 31 +- .../baml_tests__parser_strings__03_hir.snap | 8 +- 8 files changed, 749 insertions(+), 45 deletions(-) diff --git a/baml_language/crates/baml_hir/src/body.rs b/baml_language/crates/baml_hir/src/body.rs index 69c5a9e420..e3c9623be5 100644 --- a/baml_language/crates/baml_hir/src/body.rs +++ b/baml_language/crates/baml_hir/src/body.rs @@ -322,7 +322,6 @@ impl FunctionBody { struct LoweringContext { exprs: Arena, stmts: Arena, - #[allow(dead_code)] // Will be used when pattern lowering is implemented patterns: Arena, } @@ -335,9 +334,516 @@ impl LoweringContext { } } - fn lower_block_expr(&mut self, _block: &baml_syntax::ast::BlockExpr) -> ExprId { - // TODO: Implement proper block expression lowering - // For now, just return a placeholder - self.exprs.alloc(Expr::Missing) + fn lower_block_expr(&mut self, block: &baml_syntax::ast::BlockExpr) -> ExprId { + use baml_syntax::SyntaxKind; + use rowan::ast::AstNode; + + let mut stmts = Vec::new(); + let mut tail_expr = None; + + // Iterate through all children of the block + let children: Vec<_> = block.syntax().children().collect(); + + for (idx, child) in children.iter().enumerate() { + let is_last = idx == children.len() - 1; + + match child.kind() { + SyntaxKind::LET_STMT => { + let stmt_id = self.lower_let_stmt(child); + stmts.push(stmt_id); + } + SyntaxKind::RETURN_STMT => { + let stmt_id = self.lower_return_stmt(child); + stmts.push(stmt_id); + } + SyntaxKind::EXPR + | SyntaxKind::BINARY_EXPR + | SyntaxKind::UNARY_EXPR + | SyntaxKind::CALL_EXPR + | SyntaxKind::IF_EXPR + | SyntaxKind::BLOCK_EXPR + | SyntaxKind::PATH_EXPR + | SyntaxKind::PAREN_EXPR + | SyntaxKind::ARRAY_LITERAL + | SyntaxKind::OBJECT_LITERAL => { + let expr_id = self.lower_expr(child); + + // Check if this expression is followed by a semicolon + let has_semicolon = Self::has_trailing_semicolon(child); + + // Last expression without semicolon becomes tail expression + if is_last && !has_semicolon { + tail_expr = Some(expr_id); + } else { + // Expression statement (with semicolon or not last) + stmts.push(self.stmts.alloc(Stmt::Expr(expr_id))); + } + } + _ => { + // Skip other node types (comments, whitespace, etc.) + } + } + } + + self.exprs.alloc(Expr::Block { stmts, tail_expr }) + } + + fn lower_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + match node.kind() { + SyntaxKind::BINARY_EXPR => self.lower_binary_expr(node), + SyntaxKind::UNARY_EXPR => self.lower_unary_expr(node), + SyntaxKind::CALL_EXPR => self.lower_call_expr(node), + SyntaxKind::IF_EXPR => self.lower_if_expr(node), + SyntaxKind::BLOCK_EXPR => { + if let Some(block) = baml_syntax::ast::BlockExpr::cast(node.clone()) { + self.lower_block_expr(&block) + } else { + self.exprs.alloc(Expr::Missing) + } + } + SyntaxKind::PATH_EXPR => self.lower_path_expr(node), + SyntaxKind::PAREN_EXPR => { + // Unwrap parentheses - just lower the inner expression + if let Some(inner) = node.children().next() { + self.lower_expr(&inner) + } else { + self.exprs.alloc(Expr::Missing) + } + } + SyntaxKind::STRING_LITERAL | SyntaxKind::RAW_STRING_LITERAL => { + self.lower_string_literal(node) + } + SyntaxKind::ARRAY_LITERAL => self.lower_array_literal(node), + SyntaxKind::OBJECT_LITERAL => self.lower_object_literal(node), + _ => { + // Check if this is a literal token + if let Some(literal) = self.try_lower_literal_token(node) { + literal + } else { + self.exprs.alloc(Expr::Missing) + } + } + } + } + + fn lower_binary_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + // Binary expressions can have: child nodes (other exprs) OR direct tokens (literals/identifiers) + // We need to handle both cases + + let mut lhs = None; + let mut rhs = None; + let mut op = None; + + for elem in node.children_with_tokens() { + match elem { + rowan::NodeOrToken::Node(child_node) => { + // This is a child expression node (e.g., another BINARY_EXPR, PAREN_EXPR) + let expr_id = self.lower_expr(&child_node); + if lhs.is_none() { + lhs = Some(expr_id); + } else { + rhs = Some(expr_id); + } + } + rowan::NodeOrToken::Token(token) => { + match token.kind() { + // Operators + SyntaxKind::PLUS => op = Some(BinaryOp::Add), + SyntaxKind::MINUS => op = Some(BinaryOp::Sub), + SyntaxKind::STAR => op = Some(BinaryOp::Mul), + SyntaxKind::SLASH => op = Some(BinaryOp::Div), + SyntaxKind::PERCENT => op = Some(BinaryOp::Mod), + SyntaxKind::EQUALS_EQUALS => op = Some(BinaryOp::Eq), + SyntaxKind::NOT_EQUALS => op = Some(BinaryOp::Ne), + SyntaxKind::LESS => op = Some(BinaryOp::Lt), + SyntaxKind::LESS_EQUALS => op = Some(BinaryOp::Le), + SyntaxKind::GREATER => op = Some(BinaryOp::Gt), + SyntaxKind::GREATER_EQUALS => op = Some(BinaryOp::Ge), + SyntaxKind::AND_AND => op = Some(BinaryOp::And), + SyntaxKind::OR_OR => op = Some(BinaryOp::Or), + SyntaxKind::AND => op = Some(BinaryOp::BitAnd), + SyntaxKind::PIPE => op = Some(BinaryOp::BitOr), + SyntaxKind::CARET => op = Some(BinaryOp::BitXor), + SyntaxKind::LESS_LESS => op = Some(BinaryOp::Shl), + SyntaxKind::GREATER_GREATER => op = Some(BinaryOp::Shr), + + // Literals and identifiers - convert to expressions + SyntaxKind::INTEGER_LITERAL => { + let value = token.text().parse::().unwrap_or(0); + let expr_id = self.exprs.alloc(Expr::Literal(Literal::Int(value))); + if lhs.is_none() { + lhs = Some(expr_id); + } else { + rhs = Some(expr_id); + } + } + SyntaxKind::FLOAT_LITERAL => { + let expr_id = self + .exprs + .alloc(Expr::Literal(Literal::Float(token.text().to_string()))); + if lhs.is_none() { + lhs = Some(expr_id); + } else { + rhs = Some(expr_id); + } + } + SyntaxKind::WORD => { + let text = token.text(); + let expr_id = match text { + "true" => self.exprs.alloc(Expr::Literal(Literal::Bool(true))), + "false" => self.exprs.alloc(Expr::Literal(Literal::Bool(false))), + "null" => self.exprs.alloc(Expr::Literal(Literal::Null)), + _ => self.exprs.alloc(Expr::Path(Name::new(text))), + }; + if lhs.is_none() { + lhs = Some(expr_id); + } else { + rhs = Some(expr_id); + } + } + _ => {} + } + } + } + } + + let lhs = lhs.unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + let rhs = rhs.unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + let op = op.unwrap_or(BinaryOp::Add); + + self.exprs.alloc(Expr::Binary { op, lhs, rhs }) + } + + fn lower_unary_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + // Find the operator + let op = node + .children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .find_map(|token| match token.kind() { + SyntaxKind::NOT => Some(UnaryOp::Not), + SyntaxKind::MINUS => Some(UnaryOp::Neg), + _ => None, + }) + .unwrap_or(UnaryOp::Not); // Default + + // Find the expression + let expr = node + .children() + .next() + .map(|n| self.lower_expr(&n)) + .unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + + self.exprs.alloc(Expr::Unary { op, expr }) + } + + fn lower_if_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + // IF_EXPR structure: condition (EXPR), then_branch (BLOCK_EXPR), optional else_branch + let children: Vec<_> = node.children().collect(); + + let condition = children + .first() + .map(|n| self.lower_expr(n)) + .unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + + let then_branch = children + .get(1) + .map(|n| self.lower_expr(n)) + .unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + + // Check for else branch - it might be another IF_EXPR (else if) or BLOCK_EXPR (else) + let else_branch = if children.len() > 2 { + Some(self.lower_expr(&children[2])) + } else { + None + }; + + self.exprs.alloc(Expr::If { + condition, + then_branch, + else_branch, + }) + } + + fn lower_call_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + // CALL_EXPR structure: callee (PATH_EXPR or other expr), CALL_ARGS + let mut children = node.children(); + + let callee = children + .next() + .map(|n| self.lower_expr(&n)) + .unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + + // Find CALL_ARGS node and extract arguments + let args = node + .children() + .find(|n| n.kind() == SyntaxKind::CALL_ARGS) + .map(|args_node| { + args_node + .children() + .filter(|n| { + matches!( + n.kind(), + SyntaxKind::EXPR + | SyntaxKind::BINARY_EXPR + | SyntaxKind::UNARY_EXPR + | SyntaxKind::CALL_EXPR + | SyntaxKind::PATH_EXPR + | SyntaxKind::IF_EXPR + | SyntaxKind::BLOCK_EXPR + | SyntaxKind::PAREN_EXPR + ) + }) + .map(|n| self.lower_expr(&n)) + .collect() + }) + .unwrap_or_default(); + + self.exprs.alloc(Expr::Call { callee, args }) + } + + fn lower_path_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + // PATH_EXPR can be a simple identifier or a qualified path + // Collect all WORD tokens and join them + let path_parts: Vec = node + .children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .filter(|token| token.kind() == SyntaxKind::WORD) + .map(|token| token.text().to_string()) + .collect(); + + if path_parts.is_empty() { + self.exprs.alloc(Expr::Missing) + } else { + let path_text = path_parts.join("::"); + self.exprs.alloc(Expr::Path(Name::new(&path_text))) + } + } + + fn lower_string_literal(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + let text = node.text().to_string(); + + // Strip quotes + let content = if text.starts_with("#\"") && text.ends_with("\"#") { + &text[2..text.len() - 2] + } else if text.starts_with('"') && text.ends_with('"') { + &text[1..text.len() - 1] + } else { + &text + }; + + self.exprs + .alloc(Expr::Literal(Literal::String(content.to_string()))) + } + + fn lower_array_literal(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + let elements = node + .children() + .filter(|n| { + !matches!( + n.kind(), + baml_syntax::SyntaxKind::L_BRACKET | baml_syntax::SyntaxKind::R_BRACKET + ) + }) + .map(|n| self.lower_expr(&n)) + .collect(); + + self.exprs.alloc(Expr::Array { elements }) + } + + fn lower_object_literal(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + // Extract type name if present (before the brace) + let type_name = node + .children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .find(|token| token.kind() == SyntaxKind::WORD) + .map(|token| Name::new(token.text())); + + // Extract fields from OBJECT_FIELD children + let fields = node + .children() + .filter(|n| n.kind() == SyntaxKind::OBJECT_FIELD) + .filter_map(|field_node| { + // OBJECT_FIELD has: WORD (field name), COLON, EXPR (value) + let field_name = field_node + .children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .find(|token| token.kind() == SyntaxKind::WORD) + .map(|token| Name::new(token.text()))?; + + let value = field_node + .children() + .next() + .map(|n| self.lower_expr(&n)) + .unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + + Some((field_name, value)) + }) + .collect(); + + self.exprs.alloc(Expr::Object { type_name, fields }) + } + + fn try_lower_literal_token(&mut self, node: &baml_syntax::SyntaxNode) -> Option { + use baml_syntax::SyntaxKind; + + // Check if this node contains a literal token + node.children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .find_map(|token| match token.kind() { + SyntaxKind::WORD => { + // Check if this is a boolean or null literal + let text = token.text(); + match text { + "true" => Some(self.exprs.alloc(Expr::Literal(Literal::Bool(true)))), + "false" => Some(self.exprs.alloc(Expr::Literal(Literal::Bool(false)))), + "null" => Some(self.exprs.alloc(Expr::Literal(Literal::Null))), + _ => None, + } + } + SyntaxKind::INTEGER_LITERAL => { + let text = token.text(); + let value = text.parse::().unwrap_or(0); + Some(self.exprs.alloc(Expr::Literal(Literal::Int(value)))) + } + SyntaxKind::FLOAT_LITERAL => { + let text = token.text(); + Some( + self.exprs + .alloc(Expr::Literal(Literal::Float(text.to_string()))), + ) + } + _ => None, + }) + } + + fn lower_let_stmt(&mut self, node: &baml_syntax::SyntaxNode) -> StmtId { + use baml_syntax::SyntaxKind; + + // LET_STMT structure: let, pattern (WORD), =, initializer (EXPR) + + // Extract pattern (for now, just a simple binding) + let pattern = node + .children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .find(|token| token.kind() == SyntaxKind::WORD) + .map(|token| { + let name = Name::new(token.text()); + self.patterns.alloc(Pattern::Binding(name)) + }) + .unwrap_or_else(|| self.patterns.alloc(Pattern::Wildcard)); + + // Extract initializer expression + let initializer = node + .children() + .find(|n| { + matches!( + n.kind(), + SyntaxKind::EXPR + | SyntaxKind::BINARY_EXPR + | SyntaxKind::UNARY_EXPR + | SyntaxKind::CALL_EXPR + | SyntaxKind::PATH_EXPR + | SyntaxKind::IF_EXPR + | SyntaxKind::BLOCK_EXPR + | SyntaxKind::PAREN_EXPR + | SyntaxKind::ARRAY_LITERAL + | SyntaxKind::OBJECT_LITERAL + ) + }) + .map(|n| self.lower_expr(&n)); + + self.stmts.alloc(Stmt::Let { + pattern, + type_annotation: None, // TODO: Extract type annotation if present + initializer, + }) + } + + fn lower_return_stmt(&mut self, node: &baml_syntax::SyntaxNode) -> StmtId { + use baml_syntax::SyntaxKind; + + // RETURN_STMT structure: return keyword, optional expression (which might be a node or a direct token) + let return_value = if let Some(child_node) = node.children().find(|n| { + matches!( + n.kind(), + SyntaxKind::EXPR + | SyntaxKind::BINARY_EXPR + | SyntaxKind::UNARY_EXPR + | SyntaxKind::CALL_EXPR + | SyntaxKind::PATH_EXPR + | SyntaxKind::IF_EXPR + | SyntaxKind::BLOCK_EXPR + | SyntaxKind::PAREN_EXPR + | SyntaxKind::STRING_LITERAL + | SyntaxKind::RAW_STRING_LITERAL + ) + }) { + Some(self.lower_expr(&child_node)) + } else { + // Check for direct tokens (literals, identifiers) + node.children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .find_map(|token| match token.kind() { + SyntaxKind::INTEGER_LITERAL => { + let value = token.text().parse::().unwrap_or(0); + Some(self.exprs.alloc(Expr::Literal(Literal::Int(value)))) + } + SyntaxKind::FLOAT_LITERAL => Some( + self.exprs + .alloc(Expr::Literal(Literal::Float(token.text().to_string()))), + ), + SyntaxKind::WORD => { + let text = token.text(); + let expr_id = match text { + "true" => self.exprs.alloc(Expr::Literal(Literal::Bool(true))), + "false" => self.exprs.alloc(Expr::Literal(Literal::Bool(false))), + "null" => self.exprs.alloc(Expr::Literal(Literal::Null)), + _ => self.exprs.alloc(Expr::Path(Name::new(text))), + }; + Some(expr_id) + } + SyntaxKind::STRING_LITERAL | SyntaxKind::RAW_STRING_LITERAL => { + let text = token.text(); + // Strip quotes + let content = if text.starts_with("#\"") && text.ends_with("\"#") { + &text[2..text.len() - 2] + } else if text.starts_with('"') && text.ends_with('"') { + &text[1..text.len() - 1] + } else { + text + }; + Some( + self.exprs + .alloc(Expr::Literal(Literal::String(content.to_string()))), + ) + } + _ => None, + }) + }; + + self.stmts.alloc(Stmt::Return(return_value)) + } + + fn has_trailing_semicolon(node: &baml_syntax::SyntaxNode) -> bool { + use baml_syntax::SyntaxKind; + use rowan::Direction; + + // Check if the next sibling token is a semicolon + node.siblings_with_tokens(Direction::Next) + .skip(1) // Skip the node itself + .filter_map(baml_syntax::NodeOrToken::into_token) + .any(|token| token.kind() == SyntaxKind::SEMICOLON) } } diff --git a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap index 19bea4fca4..a3bed72f10 100644 --- a/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/generics/baml_tests__generics__03_hir.snap @@ -8,8 +8,10 @@ function GetTodo { body: Expr { exprs: [ Idx::(0): Missing + Idx::(1): Call { callee: Idx::(0), args: [] } + Idx::(2): Block { stmts: [], tail_expr: Some(Idx::(1)) } ] - root: Idx::(0) + root: Idx::(2) } } class Todo { diff --git a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap index 5e6883860d..fbe6a75350 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_constructors/baml_tests__parser_constructors__03_hir.snap @@ -7,18 +7,20 @@ function boolArray { return: List(Path(Path { segments: ["bool"], kind: Plain })) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Array { elements: [] } + Idx::(1): Block { stmts: [], tail_expr: Some(Idx::(0)) } ] - root: Idx::(0) + root: Idx::(1) } } function floatArray { return: List(Path(Path { segments: ["float"], kind: Plain })) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Array { elements: [] } + Idx::(1): Block { stmts: [], tail_expr: Some(Idx::(0)) } ] - root: Idx::(0) + root: Idx::(1) } } function pointArray { @@ -26,26 +28,41 @@ function pointArray { body: Expr { exprs: [ Idx::(0): Missing + Idx::(1): Missing + Idx::(2): Object { type_name: Some("Point"), fields: [("x", Idx::(0)), ("y", Idx::(1))] } + Idx::(3): Missing + Idx::(4): Missing + Idx::(5): Object { type_name: Some("Point"), fields: [("x", Idx::(3)), ("y", Idx::(4))] } + Idx::(6): Missing + Idx::(7): Missing + Idx::(8): Object { type_name: Some("Point"), fields: [("x", Idx::(6)), ("y", Idx::(7))] } + Idx::(9): Array { elements: [Idx::(2), Idx::(5), Idx::(8)] } + Idx::(10): Block { stmts: [], tail_expr: Some(Idx::(9)) } ] - root: Idx::(0) + root: Idx::(10) } } function stringArray { return: List(Path(Path { segments: ["string"], kind: Plain })) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Literal(String("hello")) + Idx::(1): Literal(String(" \"world\"")) + Idx::(2): Literal(String(" \"test\"")) + Idx::(3): Array { elements: [Idx::(0), Idx::(1), Idx::(2)] } + Idx::(4): Block { stmts: [], tail_expr: Some(Idx::(3)) } ] - root: Idx::(0) + root: Idx::(4) } } function intArray { return: List(Path(Path { segments: ["int"], kind: Plain })) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Array { elements: [] } + Idx::(1): Block { stmts: [], tail_expr: Some(Idx::(0)) } ] - root: Idx::(0) + root: Idx::(1) } } class Point { @@ -57,8 +74,11 @@ function point { body: Expr { exprs: [ Idx::(0): Missing + Idx::(1): Missing + Idx::(2): Object { type_name: Some("Point"), fields: [("x", Idx::(0)), ("y", Idx::(1))] } + Idx::(3): Block { stmts: [], tail_expr: Some(Idx::(2)) } ] - root: Idx::(0) + root: Idx::(3) } } function vec2d { @@ -66,8 +86,15 @@ function vec2d { body: Expr { exprs: [ Idx::(0): Missing + Idx::(1): Missing + Idx::(2): Object { type_name: Some("Point"), fields: [("x", Idx::(0)), ("y", Idx::(1))] } + Idx::(3): Missing + Idx::(4): Missing + Idx::(5): Object { type_name: Some("Point"), fields: [("x", Idx::(3)), ("y", Idx::(4))] } + Idx::(6): Object { type_name: Some("Vec2D"), fields: [("p", Idx::(2)), ("q", Idx::(5))] } + Idx::(7): Block { stmts: [], tail_expr: Some(Idx::(6)) } ] - root: Idx::(0) + root: Idx::(7) } } class Vec2D { @@ -82,7 +109,7 @@ function floatValues { return: Path(Path { segments: ["map"], kind: Plain }) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [], tail_expr: None } ] root: Idx::(0) } @@ -91,7 +118,7 @@ function stringValues { return: Path(Path { segments: ["map"], kind: Plain }) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [], tail_expr: None } ] root: Idx::(0) } @@ -100,7 +127,7 @@ function intValues { return: Path(Path { segments: ["map"], kind: Plain }) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [], tail_expr: None } ] root: Idx::(0) } @@ -109,7 +136,7 @@ function boolValues { return: Path(Path { segments: ["map"], kind: Plain }) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [], tail_expr: None } ] root: Idx::(0) } diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap index cf196cba25..39ac56f92a 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap @@ -7,7 +7,7 @@ function Foo { return: Path(Path { segments: [""], kind: Plain }) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [], tail_expr: None } ] root: Idx::(0) } @@ -26,9 +26,13 @@ function NextFunction { return: String body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Literal(String(" \"parsed\"")) + Idx::(1): Block { stmts: [Idx::(0)], tail_expr: None } ] - root: Idx::(0) + stmts: [ + Idx::(0): Return(Some(Idx::(0))) + ] + root: Idx::(1) } } function Incomplete { diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap index 59b8070aa8..61dabf5d7e 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap @@ -7,9 +7,33 @@ function Calculate { return: Int body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Literal(Int(1)) + Idx::(1): Literal(Int(2)) + Idx::(2): Binary { op: Add, lhs: Idx::(0), rhs: Idx::(1) } + Idx::(3): Path("a") + Idx::(4): Literal(Int(3)) + Idx::(5): Binary { op: Mul, lhs: Idx::(3), rhs: Idx::(4) } + Idx::(6): Path("b") + Idx::(7): Literal(Int(2)) + Idx::(8): Binary { op: Div, lhs: Idx::(6), rhs: Idx::(7) } + Idx::(9): Literal(Int(1)) + Idx::(10): Binary { op: Sub, lhs: Idx::(8), rhs: Idx::(9) } + Idx::(11): Path("a") + Idx::(12): Path("b") + Idx::(13): Binary { op: Add, lhs: Idx::(11), rhs: Idx::(12) } + Idx::(14): Path("c") + Idx::(15): Binary { op: Mul, lhs: Idx::(13), rhs: Idx::(14) } + Idx::(16): Path("d") + Idx::(17): Block { stmts: [Idx::(0), Idx::(1), Idx::(2), Idx::(3), Idx::(4)], tail_expr: None } + ] + stmts: [ + Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: Some(Idx::(2)) } + Idx::(1): Let { pattern: Idx::(1), type_annotation: None, initializer: Some(Idx::(5)) } + Idx::(2): Let { pattern: Idx::(2), type_annotation: None, initializer: Some(Idx::(10)) } + Idx::(3): Let { pattern: Idx::(3), type_annotation: None, initializer: Some(Idx::(15)) } + Idx::(4): Return(Some(Idx::(16))) ] - root: Idx::(0) + root: Idx::(17) } } function ConditionalLogic { @@ -17,9 +41,28 @@ function ConditionalLogic { return: String body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Path("age") + Idx::(1): Literal(Int(18)) + Idx::(2): Binary { op: Lt, lhs: Idx::(0), rhs: Idx::(1) } + Idx::(3): Literal(String(" \"minor\"")) + Idx::(4): Block { stmts: [Idx::(0)], tail_expr: None } + Idx::(5): Path("age") + Idx::(6): Literal(Int(65)) + Idx::(7): Binary { op: Lt, lhs: Idx::(5), rhs: Idx::(6) } + Idx::(8): Literal(String(" \"adult\"")) + Idx::(9): Block { stmts: [Idx::(1)], tail_expr: None } + Idx::(10): Literal(String(" \"senior\"")) + Idx::(11): Block { stmts: [Idx::(2)], tail_expr: None } + Idx::(12): If { condition: Idx::(7), then_branch: Idx::(9), else_branch: Some(Idx::(11)) } + Idx::(13): If { condition: Idx::(2), then_branch: Idx::(4), else_branch: Some(Idx::(12)) } + Idx::(14): Block { stmts: [], tail_expr: Some(Idx::(13)) } ] - root: Idx::(0) + stmts: [ + Idx::(0): Return(Some(Idx::(3))) + Idx::(1): Return(Some(Idx::(8))) + Idx::(2): Return(Some(Idx::(10))) + ] + root: Idx::(14) } } function HandleStatus { @@ -28,8 +71,17 @@ function HandleStatus { body: Expr { exprs: [ Idx::(0): Missing + Idx::(1): Missing + Idx::(2): Missing + Idx::(3): Missing + Idx::(4): Missing + Idx::(5): Missing + Idx::(6): Missing + Idx::(7): Missing + Idx::(8): Object { type_name: Some("status"), fields: [("Status", Idx::(0)), ("PENDING", Idx::(1)), ("Status", Idx::(2)), ("ACTIVE", Idx::(3)), ("Status", Idx::(4)), ("INACTIVE", Idx::(5)), ("Status", Idx::(6)), ("SUSPENDED", Idx::(7))] } + Idx::(9): Block { stmts: [], tail_expr: Some(Idx::(8)) } ] - root: Idx::(0) + root: Idx::(9) } } function ComplexMatch { @@ -38,8 +90,10 @@ function ComplexMatch { body: Expr { exprs: [ Idx::(0): Missing + Idx::(1): Object { type_name: Some("value"), fields: [("_", Idx::(0))] } + Idx::(2): Block { stmts: [], tail_expr: Some(Idx::(1)) } ] - root: Idx::(0) + root: Idx::(2) } } enum Status { @@ -52,8 +106,30 @@ function TestPrecedence { return: Bool body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Literal(Int(2)) + Idx::(1): Literal(Int(3)) + Idx::(2): Literal(Int(4)) + Idx::(3): Binary { op: Mul, lhs: Idx::(1), rhs: Idx::(2) } + Idx::(4): Binary { op: Add, lhs: Idx::(0), rhs: Idx::(3) } + Idx::(5): Path("a") + Idx::(6): Literal(Int(10)) + Idx::(7): Literal(Int(2)) + Idx::(8): Binary { op: Add, lhs: Idx::(6), rhs: Idx::(7) } + Idx::(9): Binary { op: Gt, lhs: Idx::(5), rhs: Idx::(8) } + Idx::(10): Literal(Bool(true)) + Idx::(11): Literal(Bool(false)) + Idx::(12): Literal(Bool(false)) + Idx::(13): Binary { op: And, lhs: Idx::(11), rhs: Idx::(12) } + Idx::(14): Binary { op: Or, lhs: Idx::(10), rhs: Idx::(13) } + Idx::(15): Path("c") + Idx::(16): Block { stmts: [Idx::(0), Idx::(1), Idx::(2), Idx::(3)], tail_expr: None } + ] + stmts: [ + Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: Some(Idx::(4)) } + Idx::(1): Let { pattern: Idx::(1), type_annotation: None, initializer: Some(Idx::(9)) } + Idx::(2): Let { pattern: Idx::(2), type_annotation: None, initializer: Some(Idx::(14)) } + Idx::(3): Return(Some(Idx::(15))) ] - root: Idx::(0) + root: Idx::(16) } } diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap index 4e0cdf38f5..b231b282cc 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap @@ -8,7 +8,7 @@ function Ambiguous { return: String body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [], tail_expr: None } ] root: Idx::(0) } @@ -18,7 +18,7 @@ function AnotherLLM { return: String body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [], tail_expr: None } ] root: Idx::(0) } @@ -28,9 +28,25 @@ function ProcessData { return: String body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Path("data::field1") + Idx::(1): Path("data::field2") + Idx::(2): Binary { op: Add, lhs: Idx::(0), rhs: Idx::(1) } + Idx::(3): Path("result") + Idx::(4): Literal(Int(100)) + Idx::(5): Binary { op: Gt, lhs: Idx::(3), rhs: Idx::(4) } + Idx::(6): Literal(String(" \"high\"")) + Idx::(7): Block { stmts: [Idx::(1)], tail_expr: None } + Idx::(8): If { condition: Idx::(5), then_branch: Idx::(7), else_branch: None } + Idx::(9): Literal(String(" \"low\"")) + Idx::(10): Block { stmts: [Idx::(0), Idx::(2), Idx::(3)], tail_expr: None } ] - root: Idx::(0) + stmts: [ + Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: Some(Idx::(2)) } + Idx::(1): Return(Some(Idx::(6))) + Idx::(2): Expr(Idx::(8)) + Idx::(3): Return(Some(Idx::(9))) + ] + root: Idx::(10) } } class JsonData { @@ -51,9 +67,45 @@ function ProcessAnalysis { return: String body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Path("analysis::score") + Idx::(1): Path("score") + Idx::(2): Literal(Float("0.8")) + Idx::(3): Binary { op: Gt, lhs: Idx::(1), rhs: Idx::(2) } + Idx::(4): Literal(String(" \"Very positive: \"")) + Idx::(5): Path("analysis::sentiment") + Idx::(6): Binary { op: Add, lhs: Idx::(4), rhs: Idx::(5) } + Idx::(7): Block { stmts: [Idx::(1)], tail_expr: None } + Idx::(8): Path("score") + Idx::(9): Literal(Float("0.5")) + Idx::(10): Binary { op: Gt, lhs: Idx::(8), rhs: Idx::(9) } + Idx::(11): Literal(String(" \"Positive: \"")) + Idx::(12): Path("analysis::sentiment") + Idx::(13): Binary { op: Add, lhs: Idx::(11), rhs: Idx::(12) } + Idx::(14): Block { stmts: [Idx::(2)], tail_expr: None } + Idx::(15): Path("score") + Idx::(16): Literal(Float("0.2")) + Idx::(17): Binary { op: Gt, lhs: Idx::(15), rhs: Idx::(16) } + Idx::(18): Literal(String(" \"Neutral: \"")) + Idx::(19): Path("analysis::sentiment") + Idx::(20): Binary { op: Add, lhs: Idx::(18), rhs: Idx::(19) } + Idx::(21): Block { stmts: [Idx::(3)], tail_expr: None } + Idx::(22): Literal(String(" \"Negative: \"")) + Idx::(23): Path("analysis::sentiment") + Idx::(24): Binary { op: Add, lhs: Idx::(22), rhs: Idx::(23) } + Idx::(25): Block { stmts: [Idx::(4)], tail_expr: None } + Idx::(26): If { condition: Idx::(17), then_branch: Idx::(21), else_branch: Some(Idx::(25)) } + Idx::(27): If { condition: Idx::(10), then_branch: Idx::(14), else_branch: Some(Idx::(26)) } + Idx::(28): If { condition: Idx::(3), then_branch: Idx::(7), else_branch: Some(Idx::(27)) } + Idx::(29): Block { stmts: [Idx::(0)], tail_expr: Some(Idx::(28)) } ] - root: Idx::(0) + stmts: [ + Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: Some(Idx::(0)) } + Idx::(1): Return(Some(Idx::(6))) + Idx::(2): Return(Some(Idx::(13))) + Idx::(3): Return(Some(Idx::(20))) + Idx::(4): Return(Some(Idx::(24))) + ] + root: Idx::(29) } } function ChainedProcess { @@ -79,9 +131,17 @@ function SimpleCalc { return: Int body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Path("a") + Idx::(1): Path("b") + Idx::(2): Literal(Int(2)) + Idx::(3): Binary { op: Mul, lhs: Idx::(1), rhs: Idx::(2) } + Idx::(4): Binary { op: Add, lhs: Idx::(0), rhs: Idx::(3) } + Idx::(5): Block { stmts: [Idx::(0)], tail_expr: None } ] - root: Idx::(0) + stmts: [ + Idx::(0): Return(Some(Idx::(4))) + ] + root: Idx::(5) } } class Analysis { diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap index 383ec71fb6..3ecbbc6f13 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__03_hir.snap @@ -16,9 +16,31 @@ function DeepExpression { return: Int body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Literal(Int(1)) + Idx::(1): Literal(Int(2)) + Idx::(2): Binary { op: Add, lhs: Idx::(0), rhs: Idx::(1) } + Idx::(3): Literal(Int(3)) + Idx::(4): Binary { op: Mul, lhs: Idx::(2), rhs: Idx::(3) } + Idx::(5): Literal(Int(4)) + Idx::(6): Binary { op: Sub, lhs: Idx::(4), rhs: Idx::(5) } + Idx::(7): Literal(Int(5)) + Idx::(8): Binary { op: Div, lhs: Idx::(6), rhs: Idx::(7) } + Idx::(9): Literal(Int(6)) + Idx::(10): Binary { op: Add, lhs: Idx::(8), rhs: Idx::(9) } + Idx::(11): Literal(Int(7)) + Idx::(12): Binary { op: Mul, lhs: Idx::(10), rhs: Idx::(11) } + Idx::(13): Literal(Int(8)) + Idx::(14): Binary { op: Sub, lhs: Idx::(12), rhs: Idx::(13) } + Idx::(15): Literal(Int(9)) + Idx::(16): Binary { op: Div, lhs: Idx::(14), rhs: Idx::(15) } + Idx::(17): Literal(Int(10)) + Idx::(18): Binary { op: Add, lhs: Idx::(16), rhs: Idx::(17) } + Idx::(19): Block { stmts: [Idx::(0)], tail_expr: None } ] - root: Idx::(0) + stmts: [ + Idx::(0): Return(Some(Idx::(18))) + ] + root: Idx::(19) } } function ComplexType { @@ -6264,7 +6286,10 @@ function BodyTorture { return: Int body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Block { stmts: [Idx::(0)], tail_expr: None } + ] + stmts: [ + Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: None } ] root: Idx::(0) } diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap index c00ac7033d..0ce7eb75f0 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__03_hir.snap @@ -46,9 +46,13 @@ function GetRole { return: Path(Path { segments: ["\"admin\" | \"user\" | \"guest\""], kind: Plain }) body: Expr { exprs: [ - Idx::(0): Missing + Idx::(0): Literal(String(" \"user\"")) + Idx::(1): Block { stmts: [Idx::(0)], tail_expr: None } ] - root: Idx::(0) + stmts: [ + Idx::(0): Return(Some(Idx::(0))) + ] + root: Idx::(1) } } class Messages { From 6dc1224351a5e98418301ecc5cd9aa38edf5ba6c Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Wed, 19 Nov 2025 18:45:53 +0100 Subject: [PATCH 08/14] Index lowering --- baml_language/crates/baml_hir/src/body.rs | 114 +++++++++ .../parser_expressions/field_access.baml | 30 +++ .../parser_expressions/index_access.baml | 24 ++ ...r_expressions__01_lexer__field_access.snap | 101 ++++++++ ...essions__01_lexer__field_index_access.snap | 216 ++++++++++++++++ ...r_expressions__01_lexer__index_access.snap | 111 +++++++++ ...s__01_lexer__mixed_field_index_access.snap | 89 +++++++ ..._expressions__02_parser__field_access.snap | 123 ++++++++++ ...ssions__02_parser__field_index_access.snap | 230 ++++++++++++++++++ ..._expressions__02_parser__index_access.snap | 117 +++++++++ ...__02_parser__mixed_field_index_access.snap | 101 ++++++++ ...aml_tests__parser_expressions__03_hir.snap | 76 ++++++ ...s__parser_expressions__05_diagnostics.snap | 11 + 13 files changed, 1343 insertions(+) create mode 100644 baml_language/crates/baml_tests/projects/parser_expressions/field_access.baml create mode 100644 baml_language/crates/baml_tests/projects/parser_expressions/index_access.baml create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_access.snap create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_index_access.snap create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__index_access.snap create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__mixed_field_index_access.snap create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_index_access.snap create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap create mode 100644 baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__mixed_field_index_access.snap diff --git a/baml_language/crates/baml_hir/src/body.rs b/baml_language/crates/baml_hir/src/body.rs index e3c9623be5..b7761e208d 100644 --- a/baml_language/crates/baml_hir/src/body.rs +++ b/baml_language/crates/baml_hir/src/body.rs @@ -119,6 +119,12 @@ pub enum Expr { tail_expr: Option, }, + /// Field access: `user.name`, `obj.field.nested` + FieldAccess { base: ExprId, field: Name }, + + /// Index access: `array[0]`, `map[key]` + Index { base: ExprId, index: ExprId }, + /// Missing/error expression Missing, } @@ -363,6 +369,8 @@ impl LoweringContext { | SyntaxKind::IF_EXPR | SyntaxKind::BLOCK_EXPR | SyntaxKind::PATH_EXPR + | SyntaxKind::FIELD_ACCESS_EXPR + | SyntaxKind::INDEX_EXPR | SyntaxKind::PAREN_EXPR | SyntaxKind::ARRAY_LITERAL | SyntaxKind::OBJECT_LITERAL => { @@ -404,6 +412,8 @@ impl LoweringContext { } } SyntaxKind::PATH_EXPR => self.lower_path_expr(node), + SyntaxKind::FIELD_ACCESS_EXPR => self.lower_field_access_expr(node), + SyntaxKind::INDEX_EXPR => self.lower_index_expr(node), SyntaxKind::PAREN_EXPR => { // Unwrap parentheses - just lower the inner expression if let Some(inner) = node.children().next() { @@ -596,6 +606,8 @@ impl LoweringContext { | SyntaxKind::UNARY_EXPR | SyntaxKind::CALL_EXPR | SyntaxKind::PATH_EXPR + | SyntaxKind::FIELD_ACCESS_EXPR + | SyntaxKind::INDEX_EXPR | SyntaxKind::IF_EXPR | SyntaxKind::BLOCK_EXPR | SyntaxKind::PAREN_EXPR @@ -609,6 +621,104 @@ impl LoweringContext { self.exprs.alloc(Expr::Call { callee, args }) } + fn lower_field_access_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + // FIELD_ACCESS_EXPR structure: base expression, DOT token, field name (WORD) + // The parser wraps the left side as a child expression node + let base = node + .children() + .next() + .map(|n| self.lower_expr(&n)) + .unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + + // Find the field name (WORD token after DOT) + let field = node + .children_with_tokens() + .filter_map(baml_syntax::NodeOrToken::into_token) + .filter(|token| token.kind() == SyntaxKind::WORD) + .last() // Get the last WORD (the field name, not part of the base expression) + .map(|token| Name::new(token.text())) + .unwrap_or_else(|| Name::new("")); + + self.exprs.alloc(Expr::FieldAccess { base, field }) + } + + fn lower_index_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { + use baml_syntax::SyntaxKind; + + // INDEX_EXPR structure: base (node or token), L_BRACKET, index (node or token), R_BRACKET + // Similar to BINARY_EXPR, the base and index can be either child nodes or direct tokens + + let mut base = None; + let mut index = None; + let mut inside_brackets = false; + + for elem in node.children_with_tokens() { + match elem { + rowan::NodeOrToken::Node(child_node) => { + // Child expression node + let expr_id = self.lower_expr(&child_node); + if !inside_brackets { + base = Some(expr_id); + } else { + index = Some(expr_id); + } + } + rowan::NodeOrToken::Token(token) => { + match token.kind() { + SyntaxKind::L_BRACKET => { + inside_brackets = true; + } + SyntaxKind::R_BRACKET => { + inside_brackets = false; + } + // Handle direct tokens (literals, identifiers) + SyntaxKind::INTEGER_LITERAL => { + let value = token.text().parse::().unwrap_or(0); + let expr_id = self.exprs.alloc(Expr::Literal(Literal::Int(value))); + if !inside_brackets { + base = Some(expr_id); + } else { + index = Some(expr_id); + } + } + SyntaxKind::FLOAT_LITERAL => { + let expr_id = self + .exprs + .alloc(Expr::Literal(Literal::Float(token.text().to_string()))); + if !inside_brackets { + base = Some(expr_id); + } else { + index = Some(expr_id); + } + } + SyntaxKind::WORD => { + let text = token.text(); + let expr_id = match text { + "true" => self.exprs.alloc(Expr::Literal(Literal::Bool(true))), + "false" => self.exprs.alloc(Expr::Literal(Literal::Bool(false))), + "null" => self.exprs.alloc(Expr::Literal(Literal::Null)), + _ => self.exprs.alloc(Expr::Path(Name::new(text))), + }; + if !inside_brackets { + base = Some(expr_id); + } else { + index = Some(expr_id); + } + } + _ => {} + } + } + } + } + + let base = base.unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + let index = index.unwrap_or_else(|| self.exprs.alloc(Expr::Missing)); + + self.exprs.alloc(Expr::Index { base, index }) + } + fn lower_path_expr(&mut self, node: &baml_syntax::SyntaxNode) -> ExprId { use baml_syntax::SyntaxKind; @@ -755,6 +865,8 @@ impl LoweringContext { | SyntaxKind::UNARY_EXPR | SyntaxKind::CALL_EXPR | SyntaxKind::PATH_EXPR + | SyntaxKind::FIELD_ACCESS_EXPR + | SyntaxKind::INDEX_EXPR | SyntaxKind::IF_EXPR | SyntaxKind::BLOCK_EXPR | SyntaxKind::PAREN_EXPR @@ -783,6 +895,8 @@ impl LoweringContext { | SyntaxKind::UNARY_EXPR | SyntaxKind::CALL_EXPR | SyntaxKind::PATH_EXPR + | SyntaxKind::FIELD_ACCESS_EXPR + | SyntaxKind::INDEX_EXPR | SyntaxKind::IF_EXPR | SyntaxKind::BLOCK_EXPR | SyntaxKind::PAREN_EXPR diff --git a/baml_language/crates/baml_tests/projects/parser_expressions/field_access.baml b/baml_language/crates/baml_tests/projects/parser_expressions/field_access.baml new file mode 100644 index 0000000000..7a057f0c5e --- /dev/null +++ b/baml_language/crates/baml_tests/projects/parser_expressions/field_access.baml @@ -0,0 +1,30 @@ +function FieldAccess(user User) -> string { + // Simple field access + let name = user.name; + + // Nested field access + let bio = user.profile.bio; + + // Deep nesting + let theme = user.profile.settings.theme; + + // Field access then array index + let firstTag = user.tags[0]; + + return theme; +} + +class User { + name string + profile Profile + tags string[] +} + +class Profile { + bio string + settings Settings +} + +class Settings { + theme string +} diff --git a/baml_language/crates/baml_tests/projects/parser_expressions/index_access.baml b/baml_language/crates/baml_tests/projects/parser_expressions/index_access.baml new file mode 100644 index 0000000000..8a70c1ccd1 --- /dev/null +++ b/baml_language/crates/baml_tests/projects/parser_expressions/index_access.baml @@ -0,0 +1,24 @@ +// Test index access expressions + +class User { + name string + age int + tags string[] +} + +function IndexAccess(users User[]) -> string { + // Array indexing with literal + let first = users[0]; + + // Array indexing with variable + let idx = 1; + let second = users[idx]; + + // Nested: array element field access + let firstName = users[0].name; + + // Deeply nested: array then field then index + let tag = users[0].tags[0]; + + return firstName; +} diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_access.snap new file mode 100644 index 0000000000..ae985c631c --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_access.snap @@ -0,0 +1,101 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +Function "function" +Word "FieldAccess" +LParen "(" +Word "user" +Word "User" +RParen ")" +Arrow "->" +Word "string" +LBrace "{" +Slash "/" +Slash "/" +Word "Simple" +Word "field" +Word "access" +Let "let" +Word "name" +Equals "=" +Word "user" +Dot "." +Word "name" +Semicolon ";" +Slash "/" +Slash "/" +Word "Nested" +Word "field" +Word "access" +Let "let" +Word "bio" +Equals "=" +Word "user" +Dot "." +Word "profile" +Dot "." +Word "bio" +Semicolon ";" +Slash "/" +Slash "/" +Word "Deep" +Word "nesting" +Let "let" +Word "theme" +Equals "=" +Word "user" +Dot "." +Word "profile" +Dot "." +Word "settings" +Dot "." +Word "theme" +Semicolon ";" +Slash "/" +Slash "/" +Word "Field" +Word "access" +Word "then" +Word "array" +Word "index" +Let "let" +Word "firstTag" +Equals "=" +Word "user" +Dot "." +Word "tags" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Semicolon ";" +Return "return" +Word "theme" +Semicolon ";" +RBrace "}" +Class "class" +Word "User" +LBrace "{" +Word "name" +Word "string" +Word "profile" +Word "Profile" +Word "tags" +Word "string" +LBracket "[" +RBracket "]" +RBrace "}" +Class "class" +Word "Profile" +LBrace "{" +Word "bio" +Word "string" +Word "settings" +Word "Settings" +RBrace "}" +Class "class" +Word "Settings" +LBrace "{" +Word "theme" +Word "string" +RBrace "}" diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_index_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_index_access.snap new file mode 100644 index 0000000000..42354a43d3 --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__field_index_access.snap @@ -0,0 +1,216 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +Slash "/" +Slash "/" +Word "Test" +Word "field" +Word "access" +Word "and" +Word "index" +Word "access" +Word "expressions" +Class "class" +Word "User" +LBrace "{" +Word "name" +Word "string" +Word "age" +Word "int" +Word "profile" +Word "Profile" +Word "tags" +Word "string" +LBracket "[" +RBracket "]" +RBrace "}" +Class "class" +Word "Profile" +LBrace "{" +Word "bio" +Word "string" +Word "settings" +Word "Settings" +RBrace "}" +Class "class" +Word "Settings" +LBrace "{" +Word "theme" +Word "string" +RBrace "}" +Function "function" +Word "FieldAccess" +LParen "(" +Word "user" +Word "User" +RParen ")" +Arrow "->" +Word "string" +LBrace "{" +Slash "/" +Slash "/" +Word "Simple" +Word "field" +Word "access" +Let "let" +Word "name" +Equals "=" +Word "user" +Dot "." +Word "name" +Slash "/" +Slash "/" +Word "Nested" +Word "field" +Word "access" +Let "let" +Word "bio" +Equals "=" +Word "user" +Dot "." +Word "profile" +Dot "." +Word "bio" +Slash "/" +Slash "/" +Word "Deep" +Word "nesting" +Let "let" +Word "theme" +Equals "=" +Word "user" +Dot "." +Word "profile" +Dot "." +Word "settings" +Dot "." +Word "theme" +Return "return" +Word "theme" +RBrace "}" +Function "function" +Word "IndexAccess" +LParen "(" +Word "users" +Word "User" +LBracket "[" +RBracket "]" +RParen ")" +Arrow "->" +Word "string" +LBrace "{" +Slash "/" +Slash "/" +Word "Array" +Word "indexing" +Word "with" +Word "literal" +Let "let" +Word "first" +Equals "=" +Word "users" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Slash "/" +Slash "/" +Word "Array" +Word "indexing" +Word "with" +Word "variable" +Let "let" +Word "idx" +Equals "=" +IntegerLiteral "1" +Let "let" +Word "second" +Equals "=" +Word "users" +LBracket "[" +Word "idx" +RBracket "]" +Slash "/" +Slash "/" +Word "Nested" +Colon ":" +Word "array" +Word "element" +Word "field" +Word "access" +Let "let" +Word "firstName" +Equals "=" +Word "users" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Dot "." +Word "name" +Slash "/" +Slash "/" +Word "Deeply" +Word "nested" +Colon ":" +Word "field" +Word "then" +Word "index" +Word "then" +Word "field" +Let "let" +Word "tag" +Equals "=" +Word "users" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Dot "." +Word "tags" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Return "return" +Word "firstName" +RBrace "}" +Function "function" +Word "MixedAccess" +LParen "(" +Word "user" +Word "User" +RParen ")" +Arrow "->" +Word "string" +LBrace "{" +Slash "/" +Slash "/" +Word "Field" +Word "access" +Word "then" +Word "array" +Word "index" +Let "let" +Word "firstTag" +Equals "=" +Word "user" +Dot "." +Word "tags" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Slash "/" +Slash "/" +Word "Multiple" +Word "indexes" +Let "let" +Word "nestedAccess" +Equals "=" +Word "user" +Dot "." +Word "profile" +Dot "." +Word "settings" +Dot "." +Word "theme" +Return "return" +Word "firstTag" +RBrace "}" diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__index_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__index_access.snap new file mode 100644 index 0000000000..4b4791c144 --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__index_access.snap @@ -0,0 +1,111 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +Slash "/" +Slash "/" +Word "Test" +Word "index" +Word "access" +Word "expressions" +Class "class" +Word "User" +LBrace "{" +Word "name" +Word "string" +Word "age" +Word "int" +Word "tags" +Word "string" +LBracket "[" +RBracket "]" +RBrace "}" +Function "function" +Word "IndexAccess" +LParen "(" +Word "users" +Word "User" +LBracket "[" +RBracket "]" +RParen ")" +Arrow "->" +Word "string" +LBrace "{" +Slash "/" +Slash "/" +Word "Array" +Word "indexing" +Word "with" +Word "literal" +Let "let" +Word "first" +Equals "=" +Word "users" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Semicolon ";" +Slash "/" +Slash "/" +Word "Array" +Word "indexing" +Word "with" +Word "variable" +Let "let" +Word "idx" +Equals "=" +IntegerLiteral "1" +Semicolon ";" +Let "let" +Word "second" +Equals "=" +Word "users" +LBracket "[" +Word "idx" +RBracket "]" +Semicolon ";" +Slash "/" +Slash "/" +Word "Nested" +Colon ":" +Word "array" +Word "element" +Word "field" +Word "access" +Let "let" +Word "firstName" +Equals "=" +Word "users" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Dot "." +Word "name" +Semicolon ";" +Slash "/" +Slash "/" +Word "Deeply" +Word "nested" +Colon ":" +Word "array" +Word "then" +Word "field" +Word "then" +Word "index" +Let "let" +Word "tag" +Equals "=" +Word "users" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Dot "." +Word "tags" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Semicolon ";" +Return "return" +Word "firstName" +Semicolon ";" +RBrace "}" diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__mixed_field_index_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__mixed_field_index_access.snap new file mode 100644 index 0000000000..94c7ec961f --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__mixed_field_index_access.snap @@ -0,0 +1,89 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +Slash "/" +Slash "/" +Word "Test" +Word "mixed" +Word "field" +Word "and" +Word "index" +Word "access" +Word "expressions" +Class "class" +Word "User" +LBrace "{" +Word "name" +Word "string" +Word "profile" +Word "Profile" +Word "tags" +Word "string" +LBracket "[" +RBracket "]" +RBrace "}" +Class "class" +Word "Profile" +LBrace "{" +Word "bio" +Word "string" +Word "settings" +Word "Settings" +RBrace "}" +Class "class" +Word "Settings" +LBrace "{" +Word "theme" +Word "string" +RBrace "}" +Function "function" +Word "MixedAccess" +LParen "(" +Word "user" +Word "User" +RParen ")" +Arrow "->" +Word "string" +LBrace "{" +Slash "/" +Slash "/" +Word "Field" +Word "access" +Word "then" +Word "array" +Word "index" +Let "let" +Word "firstTag" +Equals "=" +Word "user" +Dot "." +Word "tags" +LBracket "[" +IntegerLiteral "0" +RBracket "]" +Semicolon ";" +Slash "/" +Slash "/" +Word "Nested" +Word "field" +Word "access" +LParen "(" +For "for" +Word "comparison" +RParen ")" +Let "let" +Word "nestedAccess" +Equals "=" +Word "user" +Dot "." +Word "profile" +Dot "." +Word "settings" +Dot "." +Word "theme" +Semicolon ";" +Return "return" +Word "firstTag" +Semicolon ";" +RBrace "}" diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap new file mode 100644 index 0000000000..1afba04f07 --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap @@ -0,0 +1,123 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +=== SYNTAX TREE === +SOURCE_FILE + FUNCTION_DEF + KW_FUNCTION "function" + WORD "FieldAccess" + PARAMETER_LIST + L_PAREN "(" + PARAMETER + WORD "user" + TYPE_EXPR " User" + WORD "User" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "name" + EQUALS "=" + PATH_EXPR " user.name" + WORD "user" + DOT "." + WORD "name" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "bio" + EQUALS "=" + PATH_EXPR " user.profile.bio" + WORD "user" + DOT "." + WORD "profile" + DOT "." + WORD "bio" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "theme" + EQUALS "=" + PATH_EXPR " user.profile.settings.theme" + WORD "user" + DOT "." + WORD "profile" + DOT "." + WORD "settings" + DOT "." + WORD "theme" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "firstTag" + EQUALS "=" + INDEX_EXPR + PATH_EXPR " user.tags" + WORD "user" + DOT "." + WORD "tags" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + SEMICOLON ";" + RETURN_STMT " + + return theme" + KW_RETURN "return" + WORD "theme" + SEMICOLON ";" + R_BRACE "}" + CLASS_DEF + KW_CLASS "class" + WORD "User" + L_BRACE "{" + FIELD + WORD "name" + TYPE_EXPR " string" + WORD "string" + FIELD + WORD "profile" + TYPE_EXPR " Profile" + WORD "Profile" + FIELD + WORD "tags" + TYPE_EXPR " string[]" + WORD "string" + L_BRACKET "[" + R_BRACKET "]" + R_BRACE "}" + CLASS_DEF + KW_CLASS "class" + WORD "Profile" + L_BRACE "{" + FIELD + WORD "bio" + TYPE_EXPR " string" + WORD "string" + FIELD + WORD "settings" + TYPE_EXPR " Settings" + WORD "Settings" + R_BRACE "}" + CLASS_DEF + KW_CLASS "class" + WORD "Settings" + L_BRACE "{" + FIELD + WORD "theme" + TYPE_EXPR " string" + WORD "string" + R_BRACE "}" + +=== ERRORS === + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_index_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_index_access.snap new file mode 100644 index 0000000000..4b2701e50a --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_index_access.snap @@ -0,0 +1,230 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +=== SYNTAX TREE === +SOURCE_FILE + CLASS_DEF + KW_CLASS "class" + WORD "User" + L_BRACE "{" + FIELD + WORD "name" + TYPE_EXPR " string" + WORD "string" + FIELD + WORD "age" + TYPE_EXPR " int" + WORD "int" + FIELD + WORD "profile" + TYPE_EXPR " Profile" + WORD "Profile" + FIELD + WORD "tags" + TYPE_EXPR " string[]" + WORD "string" + L_BRACKET "[" + R_BRACKET "]" + R_BRACE "}" + CLASS_DEF + KW_CLASS "class" + WORD "Profile" + L_BRACE "{" + FIELD + WORD "bio" + TYPE_EXPR " string" + WORD "string" + FIELD + WORD "settings" + TYPE_EXPR " Settings" + WORD "Settings" + R_BRACE "}" + CLASS_DEF + KW_CLASS "class" + WORD "Settings" + L_BRACE "{" + FIELD + WORD "theme" + TYPE_EXPR " string" + WORD "string" + R_BRACE "}" + FUNCTION_DEF + KW_FUNCTION "function" + WORD "FieldAccess" + PARAMETER_LIST + L_PAREN "(" + PARAMETER + WORD "user" + TYPE_EXPR " User" + WORD "User" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "name" + EQUALS "=" + PATH_EXPR " user.name" + WORD "user" + DOT "." + WORD "name" + LET_STMT + KW_LET "let" + WORD "bio" + EQUALS "=" + PATH_EXPR " user.profile.bio" + WORD "user" + DOT "." + WORD "profile" + DOT "." + WORD "bio" + LET_STMT + KW_LET "let" + WORD "theme" + EQUALS "=" + PATH_EXPR " user.profile.settings.theme" + WORD "user" + DOT "." + WORD "profile" + DOT "." + WORD "settings" + DOT "." + WORD "theme" + RETURN_STMT " + + return theme" + KW_RETURN "return" + WORD "theme" + R_BRACE "}" + FUNCTION_DEF + KW_FUNCTION "function" + WORD "IndexAccess" + PARAMETER_LIST + L_PAREN "(" + PARAMETER + WORD "users" + TYPE_EXPR " User[]" + WORD "User" + L_BRACKET "[" + R_BRACKET "]" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "first" + EQUALS "=" + INDEX_EXPR "users[0]" + WORD "users" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + LET_STMT " + + // Array indexing with variable + let idx = 1" + KW_LET "let" + WORD "idx" + EQUALS "=" + INTEGER_LITERAL "1" + LET_STMT + KW_LET "let" + WORD "second" + EQUALS "=" + INDEX_EXPR "users[idx]" + WORD "users" + L_BRACKET "[" + WORD "idx" + R_BRACKET "]" + LET_STMT + KW_LET "let" + WORD "firstName" + EQUALS "=" + FIELD_ACCESS_EXPR + INDEX_EXPR "users[0]" + WORD "users" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + DOT "." + WORD "name" + LET_STMT + KW_LET "let" + WORD "tag" + EQUALS "=" + INDEX_EXPR + FIELD_ACCESS_EXPR + INDEX_EXPR "users[0]" + WORD "users" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + DOT "." + WORD "tags" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + RETURN_STMT " + + return firstName" + KW_RETURN "return" + WORD "firstName" + R_BRACE "}" + FUNCTION_DEF + KW_FUNCTION "function" + WORD "MixedAccess" + PARAMETER_LIST + L_PAREN "(" + PARAMETER + WORD "user" + TYPE_EXPR " User" + WORD "User" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "firstTag" + EQUALS "=" + INDEX_EXPR + PATH_EXPR " user.tags" + WORD "user" + DOT "." + WORD "tags" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + LET_STMT + KW_LET "let" + WORD "nestedAccess" + EQUALS "=" + PATH_EXPR " user.profile.settings.theme" + WORD "user" + DOT "." + WORD "profile" + DOT "." + WORD "settings" + DOT "." + WORD "theme" + RETURN_STMT " + + return firstTag" + KW_RETURN "return" + WORD "firstTag" + R_BRACE "}" + +=== ERRORS === +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap new file mode 100644 index 0000000000..ef915814c9 --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap @@ -0,0 +1,117 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +=== SYNTAX TREE === +SOURCE_FILE + CLASS_DEF + KW_CLASS "class" + WORD "User" + L_BRACE "{" + FIELD + WORD "name" + TYPE_EXPR " string" + WORD "string" + FIELD + WORD "age" + TYPE_EXPR " int" + WORD "int" + FIELD + WORD "tags" + TYPE_EXPR " string[]" + WORD "string" + L_BRACKET "[" + R_BRACKET "]" + R_BRACE "}" + FUNCTION_DEF + KW_FUNCTION "function" + WORD "IndexAccess" + PARAMETER_LIST + L_PAREN "(" + PARAMETER + WORD "users" + TYPE_EXPR " User[]" + WORD "User" + L_BRACKET "[" + R_BRACKET "]" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "first" + EQUALS "=" + INDEX_EXPR "users[0]" + WORD "users" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + SEMICOLON ";" + LET_STMT " + + // Array indexing with variable + let idx = 1" + KW_LET "let" + WORD "idx" + EQUALS "=" + INTEGER_LITERAL "1" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "second" + EQUALS "=" + INDEX_EXPR "users[idx]" + WORD "users" + L_BRACKET "[" + WORD "idx" + R_BRACKET "]" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "firstName" + EQUALS "=" + FIELD_ACCESS_EXPR + INDEX_EXPR "users[0]" + WORD "users" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + DOT "." + WORD "name" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "tag" + EQUALS "=" + INDEX_EXPR + FIELD_ACCESS_EXPR + INDEX_EXPR "users[0]" + WORD "users" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + DOT "." + WORD "tags" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + SEMICOLON ";" + RETURN_STMT " + + return firstName" + KW_RETURN "return" + WORD "firstName" + SEMICOLON ";" + R_BRACE "}" + +=== ERRORS === + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__mixed_field_index_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__mixed_field_index_access.snap new file mode 100644 index 0000000000..68efa88d59 --- /dev/null +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__mixed_field_index_access.snap @@ -0,0 +1,101 @@ +--- +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +expression: output +--- +=== SYNTAX TREE === +SOURCE_FILE + CLASS_DEF + KW_CLASS "class" + WORD "User" + L_BRACE "{" + FIELD + WORD "name" + TYPE_EXPR " string" + WORD "string" + FIELD + WORD "profile" + TYPE_EXPR " Profile" + WORD "Profile" + FIELD + WORD "tags" + TYPE_EXPR " string[]" + WORD "string" + L_BRACKET "[" + R_BRACKET "]" + R_BRACE "}" + CLASS_DEF + KW_CLASS "class" + WORD "Profile" + L_BRACE "{" + FIELD + WORD "bio" + TYPE_EXPR " string" + WORD "string" + FIELD + WORD "settings" + TYPE_EXPR " Settings" + WORD "Settings" + R_BRACE "}" + CLASS_DEF + KW_CLASS "class" + WORD "Settings" + L_BRACE "{" + FIELD + WORD "theme" + TYPE_EXPR " string" + WORD "string" + R_BRACE "}" + FUNCTION_DEF + KW_FUNCTION "function" + WORD "MixedAccess" + PARAMETER_LIST + L_PAREN "(" + PARAMETER + WORD "user" + TYPE_EXPR " User" + WORD "User" + R_PAREN ")" + ARROW "->" + TYPE_EXPR " string" + WORD "string" + EXPR_FUNCTION_BODY + BLOCK_EXPR + L_BRACE "{" + LET_STMT + KW_LET "let" + WORD "firstTag" + EQUALS "=" + INDEX_EXPR + PATH_EXPR " user.tags" + WORD "user" + DOT "." + WORD "tags" + L_BRACKET "[" + INTEGER_LITERAL "0" + R_BRACKET "]" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "nestedAccess" + EQUALS "=" + PATH_EXPR " user.profile.settings.theme" + WORD "user" + DOT "." + WORD "profile" + DOT "." + WORD "settings" + DOT "." + WORD "theme" + SEMICOLON ";" + RETURN_STMT " + + return firstTag" + KW_RETURN "return" + WORD "firstTag" + SEMICOLON ";" + R_BRACE "}" + +=== ERRORS === + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression + Expected Expected expression, found Expected expression diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap index 61dabf5d7e..61da74280d 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap @@ -36,6 +36,42 @@ function Calculate { root: Idx::(17) } } +function FieldAccess { + params: [user: Path(Path { segments: ["User"], kind: Plain })] + return: String + body: Expr { + exprs: [ + Idx::(0): Path("user::name") + Idx::(1): Path("user::profile::bio") + Idx::(2): Path("user::profile::settings::theme") + Idx::(3): Path("user::tags") + Idx::(4): Literal(Int(0)) + Idx::(5): Index { base: Idx::(3), index: Idx::(4) } + Idx::(6): Path("theme") + Idx::(7): Block { stmts: [Idx::(0), Idx::(1), Idx::(2), Idx::(3), Idx::(4)], tail_expr: None } + ] + stmts: [ + Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: Some(Idx::(0)) } + Idx::(1): Let { pattern: Idx::(1), type_annotation: None, initializer: Some(Idx::(1)) } + Idx::(2): Let { pattern: Idx::(2), type_annotation: None, initializer: Some(Idx::(2)) } + Idx::(3): Let { pattern: Idx::(3), type_annotation: None, initializer: Some(Idx::(5)) } + Idx::(4): Return(Some(Idx::(6))) + ] + root: Idx::(7) + } +} +class Settings { + theme: String +} +class User { + name: String + profile: Path(Path { segments: ["Profile"], kind: Plain }) + tags: List(Path(Path { segments: ["string"], kind: Plain })) +} +class Profile { + bio: String + settings: Path(Path { segments: ["Settings"], kind: Plain }) +} function ConditionalLogic { params: [age: Int] return: String @@ -65,6 +101,46 @@ function ConditionalLogic { root: Idx::(14) } } +function IndexAccess { + params: [users: List(Path(Path { segments: ["User"], kind: Plain }))] + return: String + body: Expr { + exprs: [ + Idx::(0): Path("users") + Idx::(1): Literal(Int(0)) + Idx::(2): Index { base: Idx::(0), index: Idx::(1) } + Idx::(3): Path("users") + Idx::(4): Path("idx") + Idx::(5): Index { base: Idx::(3), index: Idx::(4) } + Idx::(6): Path("users") + Idx::(7): Literal(Int(0)) + Idx::(8): Index { base: Idx::(6), index: Idx::(7) } + Idx::(9): FieldAccess { base: Idx::(8), field: "name" } + Idx::(10): Path("users") + Idx::(11): Literal(Int(0)) + Idx::(12): Index { base: Idx::(10), index: Idx::(11) } + Idx::(13): FieldAccess { base: Idx::(12), field: "tags" } + Idx::(14): Literal(Int(0)) + Idx::(15): Index { base: Idx::(13), index: Idx::(14) } + Idx::(16): Path("firstName") + Idx::(17): Block { stmts: [Idx::(0), Idx::(1), Idx::(2), Idx::(3), Idx::(4), Idx::(5)], tail_expr: None } + ] + stmts: [ + Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: Some(Idx::(2)) } + Idx::(1): Let { pattern: Idx::(1), type_annotation: None, initializer: None } + Idx::(2): Let { pattern: Idx::(2), type_annotation: None, initializer: Some(Idx::(5)) } + Idx::(3): Let { pattern: Idx::(3), type_annotation: None, initializer: Some(Idx::(9)) } + Idx::(4): Let { pattern: Idx::(4), type_annotation: None, initializer: Some(Idx::(15)) } + Idx::(5): Return(Some(Idx::(16))) + ] + root: Idx::(17) + } +} +class User { + name: String + age: Int + tags: List(Path(Path { segments: ["string"], kind: Plain })) +} function HandleStatus { params: [status: Path(Path { segments: ["Status"], kind: Plain })] return: String diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap index b8354d7ce4..e82df469b2 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap @@ -3,6 +3,17 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression + [parse] Expected Expected expression, found Expected expression [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals From 5c808d980d31f8975ca34932e771109bdfa590a4 Mon Sep 17 00:00:00 2001 From: Greg Hale Date: Thu, 20 Nov 2025 07:18:01 -0800 Subject: [PATCH 09/14] Parser improvements (#2730) - Use `ariadne` when printing diagnostics - Use semantic errors in parser - Un-duplicate "Expected Expected" messages - Fix parsing of semicolons in let statements that use the Pratt parser for binary operators. @antoniosarosi merge if it looks ok to you? (to avoid too many branches-off-branches) --------- Co-authored-by: Antonio Sarosi Co-authored-by: Claude --- baml_language/Cargo.lock | 1 + .../crates/baml_diagnostics/src/lib.rs | 10 + .../crates/baml_parser/src/parser.rs | 221 +- baml_language/crates/baml_tests/Cargo.toml | 1 + baml_language/crates/baml_tests/build.rs | 19 +- .../parser_expressions/binary_ops.baml | 10 +- .../parser_expressions/match_expressions.baml | 22 +- .../parser_expressions/precedence.baml | 15 +- ...ts__basic_types__02_parser__functions.snap | 3 +- ...ml_tests__basic_types__05_diagnostics.snap | 3 +- ...error_cases__02_parser__syntax_errors.snap | 45 +- .../baml_tests__error_cases__03_hir.snap | 12 +- ...ml_tests__error_cases__05_diagnostics.snap | 28 +- ...r_recovery__02_parser__invalid_syntax.snap | 118 +- ...r_recovery__02_parser__missing_braces.snap | 16 +- ...or_recovery__02_parser__partial_input.snap | 91 +- ..._recovery__02_parser__unclosed_string.snap | 27 +- ..._tests__parser_error_recovery__03_hir.snap | 8 +- ...parser_error_recovery__05_diagnostics.snap | 235 +- ...ser_expressions__01_lexer__binary_ops.snap | 6 +- ...ressions__01_lexer__match_expressions.snap | 13 +- ...ser_expressions__01_lexer__precedence.snap | 28 +- ...er_expressions__02_parser__binary_ops.snap | 8 +- ..._expressions__02_parser__field_access.snap | 20 +- ..._expressions__02_parser__index_access.snap | 25 +- ...essions__02_parser__match_expressions.snap | 436 +- ...er_expressions__02_parser__precedence.snap | 27 +- ...aml_tests__parser_expressions__03_hir.snap | 34 +- ...s__parser_expressions__05_diagnostics.snap | 437 +- ...lative__02_parser__ambiguous_function.snap | 39 +- ...aml_tests__parser_speculative__03_hir.snap | 3 + ...s__parser_speculative__05_diagnostics.snap | 24 +- ...rser_stress__02_parser__deeply_nested.snap | 99 +- ...tests__parser_stress__02_parser__rust.snap | 12500 +++++++++++++-- ...arser_stress__02_parser__very_invalid.snap | 24 +- ..._tests__parser_stress__05_diagnostics.snap | 12618 ++++++++++++++-- ...ser_strings__02_parser__nested_quotes.snap | 305 +- ...er_strings__02_parser__simple_strings.snap | 54 +- ...r_strings__02_parser__unicode_strings.snap | 209 +- ...tests__parser_strings__05_diagnostics.snap | 557 +- ...sts__simple_function__02_parser__main.snap | 2 +- ...ests__simple_function__05_diagnostics.snap | 2 +- baml_language/crates/baml_tests/src/lib.rs | 3 +- 43 files changed, 25018 insertions(+), 3340 deletions(-) diff --git a/baml_language/Cargo.lock b/baml_language/Cargo.lock index aa6998d861..d572eb92b6 100644 --- a/baml_language/Cargo.lock +++ b/baml_language/Cargo.lock @@ -216,6 +216,7 @@ name = "baml_tests" version = "0.0.0" dependencies = [ "baml_db", + "baml_diagnostics", "codspeed-divan-compat", "insta", "walkdir", diff --git a/baml_language/crates/baml_diagnostics/src/lib.rs b/baml_language/crates/baml_diagnostics/src/lib.rs index 601624a8eb..90ed24d811 100644 --- a/baml_language/crates/baml_diagnostics/src/lib.rs +++ b/baml_language/crates/baml_diagnostics/src/lib.rs @@ -18,6 +18,15 @@ fn span_to_ariadne(span: Span) -> (usize, std::ops::Range) { /// Render any diagnostic to a beautiful string using Ariadne. pub fn render_diagnostic(diag: &dyn Diagnostic, sources: &HashMap) -> String { + render_diagnostic_with_color(diag, sources, true) +} + +/// Render any diagnostic to a beautiful string using Ariadne, with optional color. +pub fn render_diagnostic_with_color( + diag: &dyn Diagnostic, + sources: &HashMap, + color: bool, +) -> String { let Some(span) = diag.span() else { // If no span, just return the message return diag.message(); @@ -32,6 +41,7 @@ pub fn render_diagnostic(diag: &dyn Diagnostic, sources: &HashMap SyntaxKind { /// Events for building the syntax tree. #[derive(Debug, Clone)] enum Event { - StartNode { kind: SyntaxKind }, + StartNode { + kind: SyntaxKind, + }, FinishNode, - Token { kind: SyntaxKind, text: String }, - Error { message: String }, + Token { + kind: SyntaxKind, + text: String, + }, + UnexpectedToken { + expected: String, + found: String, + span: Span, + }, } /// Parser state for checkpoint/restore. @@ -371,6 +381,27 @@ impl<'a> Parser<'a> { }); } + // ============ Error Recovery Helpers ============` + + /// Check if the current token is a top-level keyword. + /// Used for error recovery to break out of malformed blocks. + fn at_top_level_keyword(&self) -> bool { + matches!( + self.current().map(|t| t.kind), + Some( + TokenKind::Class + | TokenKind::Enum + | TokenKind::Function + | TokenKind::Client + | TokenKind::Generator + | TokenKind::Test + | TokenKind::RetryPolicy + | TokenKind::TemplateString + | TokenKind::TypeBuilder + ) + ) + } + // ============ Consumption ============ /// Consume current token, including all trivia before it (whitespace, newlines, comments). @@ -445,7 +476,19 @@ impl<'a> Parser<'a> { .current() .map(|t| format!("{:?}", t.kind)) .unwrap_or_else(|| "EOF".to_string()); - self.error(format!("Expected {kind:?}, found {found}")); + + let span = self.current().map(|t| t.span).unwrap_or_else(|| { + // Use the span of the last token if available, or a default empty span + self.tokens.last().map(|t| t.span).unwrap_or_else(|| { + baml_base::Span::new(baml_base::FileId::new(0), TextRange::default()) + }) + }); + + self.events.push(Event::UnexpectedToken { + expected: format!("{kind:?}"), + found, + span, + }); false } } @@ -474,8 +517,24 @@ impl<'a> Parser<'a> { self.events.push(Event::FinishNode); } - fn error(&mut self, message: String) { - self.events.push(Event::Error { message }); + fn error(&mut self, expected: String) { + let found = self + .current() + .map(|t| format!("{:?}", t.kind)) + .unwrap_or_else(|| "EOF".to_string()); + + let span = self.current().map(|t| t.span).unwrap_or_else(|| { + // Use the span of the last token if available, or a default empty span + self.tokens.last().map(|t| t.span).unwrap_or_else(|| { + baml_base::Span::new(baml_base::FileId::new(0), TextRange::default()) + }) + }); + + self.events.push(Event::UnexpectedToken { + expected, + found, + span, + }); } /// Parse with a node wrapper @@ -510,13 +569,15 @@ impl<'a> Parser<'a> { Event::Token { kind, text } => { builder.token(kind.into(), &text); } - Event::Error { message } => { - // Store error for later reporting - // TODO: Need to track spans properly + Event::UnexpectedToken { + expected, + found, + span, + } => { errors.push(ParseError::UnexpectedToken { - expected: message.clone(), - found: message, - span: baml_base::Span::new(baml_base::FileId::new(0), TextRange::default()), + expected, + found, + span, }); } } @@ -730,7 +791,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected attribute name".to_string()); + p.error("attribute name".to_string()); return; } @@ -750,7 +811,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected attribute name".to_string()); + p.error("attribute name".to_string()); return; } @@ -803,7 +864,7 @@ impl<'a> Parser<'a> { // Identifier or keyword self.bump(); } else { - self.error("Expected attribute argument".to_string()); + self.error("attribute argument".to_string()); } } @@ -893,7 +954,7 @@ impl<'a> Parser<'a> { } self.expect(TokenKind::RParen); } else { - self.error("Expected type".to_string()); + self.error("type".to_string()); } } @@ -909,7 +970,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); // name } else { - p.error("Expected enum name".to_string()); + p.error("enum name".to_string()); } // Opening brace @@ -919,6 +980,11 @@ impl<'a> Parser<'a> { // Parse enum variants and attributes while !p.at(TokenKind::RBrace) && !p.at_end() { + // Error recovery: if we see a top-level keyword, assume we missed a closing brace + if p.at_top_level_keyword() { + break; + } + if p.at(TokenKind::AtAt) { // Block attribute: @@dynamic p.parse_block_attribute(); @@ -961,7 +1027,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); // name } else { - p.error("Expected class name".to_string()); + p.error("class name".to_string()); } // Opening brace @@ -971,6 +1037,11 @@ impl<'a> Parser<'a> { // Parse fields and attributes while !p.at(TokenKind::RBrace) && !p.at_end() { + // Error recovery: if we see a top-level keyword, assume we missed a closing brace + if p.at_top_level_keyword() { + break; + } + if p.at(TokenKind::AtAt) { // Block attribute: @@dynamic p.parse_block_attribute(); @@ -1016,7 +1087,15 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected function name".to_string()); + p.error("function name".to_string()); + // Recovery: skip until we see '(', '{', or '->' + while !p.at(TokenKind::LParen) + && !p.at(TokenKind::LBrace) + && !p.at(TokenKind::Arrow) + && !p.at_end() + { + p.bump(); + } } // Parameters @@ -1026,14 +1105,14 @@ impl<'a> Parser<'a> { if p.eat(TokenKind::Arrow) { p.parse_type(); } else { - p.error("Expected return type (->)".to_string()); + p.error("return type (->)".to_string()); } // Body if p.at(TokenKind::LBrace) { p.parse_function_body(); } else { - p.error("Expected function body".to_string()); + p.error("function body".to_string()); } }); } @@ -1063,7 +1142,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected parameter name".to_string()); + p.error("parameter name".to_string()); } // Type annotation - supports both "name: type" and "name type" syntax @@ -1074,7 +1153,7 @@ impl<'a> Parser<'a> { // Without colon: "name type" (whitespace-separated) p.parse_type(); } else { - p.error("Expected type annotation".to_string()); + p.error("type annotation".to_string()); } }); } @@ -1113,6 +1192,12 @@ impl<'a> Parser<'a> { let mut has_prompt = false; while !p.at(TokenKind::RBrace) && !p.at_end() { + // Error recovery: if we see a top-level keyword (except Client, which is valid in LLM bodies) + // assume we missed a closing brace + if p.at_top_level_keyword() && !p.at(TokenKind::Client) { + break; + } + if p.at(TokenKind::Client) { if has_client { errors.push("Duplicate 'client' field".to_string()); @@ -1211,7 +1296,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected client name".to_string()); + p.error("client name".to_string()); } }); } @@ -1222,12 +1307,12 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) && p.current().map(|t| t.text == "prompt").unwrap_or(false) { p.bump(); } else { - p.error("Expected 'prompt' keyword".to_string()); + p.error("'prompt' keyword".to_string()); } // Prompt value (usually a raw string) if !p.parse_any_string() { - p.error("Expected prompt string".to_string()); + p.error("prompt string".to_string()); } }); } @@ -1239,6 +1324,11 @@ impl<'a> Parser<'a> { // Parse statements until closing brace while !p.at(TokenKind::RBrace) && !p.at_end() { + // Error recovery: if we see a top-level keyword, assume we missed a closing brace + if p.at_top_level_keyword() { + break; + } + p.parse_stmt(); } @@ -1250,6 +1340,11 @@ impl<'a> Parser<'a> { /// Parse a statement fn parse_stmt(&mut self) { + // Skip stray semicolons + if self.eat(TokenKind::Semicolon) { + return; + } + if self.at(TokenKind::Let) { self.parse_let_stmt(); } else if self.at(TokenKind::Return) { @@ -1278,7 +1373,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected variable name".to_string()); + p.error("variable name".to_string()); } // Optional type annotation @@ -1292,8 +1387,11 @@ impl<'a> Parser<'a> { // This prevents `let a = b = c` from being parsed as nested assignment p.parse_expr_bp(3); } else { - p.error("Expected initializer (=)".to_string()); + p.error("initializer (=)".to_string()); } + + // Consume trailing semicolon + p.eat(TokenKind::Semicolon); }); } @@ -1305,6 +1403,9 @@ impl<'a> Parser<'a> { if !p.at(TokenKind::RBrace) && !p.at_end() { p.parse_expr(); } + + // Consume trailing semicolon + p.eat(TokenKind::Semicolon); }); } @@ -1319,7 +1420,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::LBrace) { p.parse_block_expr(); } else { - p.error("Expected block after if condition".to_string()); + p.error("block after if condition".to_string()); } // Optional else @@ -1333,7 +1434,7 @@ impl<'a> Parser<'a> { // else block p.parse_block_expr(); } else { - p.error("Expected 'if' or block after 'else'".to_string()); + p.error("'if' or block after 'else'".to_string()); } } }); @@ -1350,7 +1451,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::LBrace) { p.parse_block_expr(); } else { - p.error("Expected block after while condition".to_string()); + p.error("block after while condition".to_string()); } }); } @@ -1363,7 +1464,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected loop variable".to_string()); + p.error("loop variable".to_string()); } // 'in' keyword @@ -1376,7 +1477,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::LBrace) { p.parse_block_expr(); } else { - p.error("Expected block after for expression".to_string()); + p.error("block after for expression".to_string()); } }); } @@ -1520,7 +1621,7 @@ impl<'a> Parser<'a> { return i; } } - Event::Error { .. } => {} + Event::UnexpectedToken { .. } => {} } } @@ -1563,7 +1664,7 @@ impl<'a> Parser<'a> { return *kind == SyntaxKind::WORD; } } - Event::Error { .. } => {} + Event::UnexpectedToken { .. } => {} } } false @@ -1640,8 +1741,11 @@ impl<'a> Parser<'a> { self.parse_block_expr(); } } else { - self.error("Expected expression".to_string()); - self.bump(); // Consume unexpected token. + self.error("expression".to_string()); + // Consume the unexpected token to avoid infinite loops + if !self.at_end() { + self.bump(); + } } } @@ -1802,7 +1906,7 @@ impl<'a> Parser<'a> { if !p.at(TokenKind::RBrace) { if !p.eat(TokenKind::Comma) { // Missing comma - error but try to continue - p.error("Expected ',' or '}' after map entry".to_string()); + p.error("',' or '}' after map entry".to_string()); // Try to recover if !p.at(TokenKind::Word) && !p.at(TokenKind::Quote) @@ -1819,7 +1923,7 @@ impl<'a> Parser<'a> { continue; } else { // Unexpected token in map - p.error("Expected map key or '}'".to_string()); + p.error("map key or '}'".to_string()); // Skip the unexpected token to avoid getting stuck p.bump(); } @@ -1856,7 +1960,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); // Next segment } else { - p.error("Expected path segment after '.'".to_string()); + p.error("path segment after '.'".to_string()); break; } } @@ -1874,7 +1978,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); // identifier key } else if !p.parse_any_string() { - p.error("Expected map key".to_string()); + p.error("map key".to_string()); return; } @@ -1902,7 +2006,7 @@ impl<'a> Parser<'a> { if !self.at(TokenKind::RBrace) { if !self.eat(TokenKind::Comma) { // Missing comma - error but try to continue - self.error("Expected ',' or '}' after object field".to_string()); + self.error("',' or '}' after object field".to_string()); // Try to recover by looking for next field or closing brace if !self.at(TokenKind::Word) && !self.at(TokenKind::Quote) @@ -1919,7 +2023,7 @@ impl<'a> Parser<'a> { continue; } else { // Unexpected token in object literal - self.error("Expected field name or '}'".to_string()); + self.error("field name or '}'".to_string()); // Skip the unexpected token to avoid getting stuck self.bump(); } @@ -1935,7 +2039,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); // identifier field name } else if !p.parse_any_string() { - p.error("Expected field name".to_string()); + p.error("field name".to_string()); return; } @@ -2023,14 +2127,14 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected client name".to_string()); + p.error("client name".to_string()); } // Config block if p.at(TokenKind::LBrace) { p.parse_config_block(); } else { - p.error("Expected config block".to_string()); + p.error("config block".to_string()); } }); } @@ -2040,6 +2144,11 @@ impl<'a> Parser<'a> { p.expect(TokenKind::LBrace); while !p.at(TokenKind::RBrace) && !p.at_end() { + // Error recovery: if we see a top-level keyword, assume we missed a closing brace + if p.at_top_level_keyword() { + break; + } + p.parse_config_item(); } @@ -2053,7 +2162,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected config key".to_string()); + p.error("config key".to_string()); if !p.at_end() { p.bump(); } @@ -2112,14 +2221,14 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected test name".to_string()); + p.error("test name".to_string()); } // Config block if p.at(TokenKind::LBrace) { p.parse_config_block(); } else { - p.error("Expected test body".to_string()); + p.error("test body".to_string()); } }); } @@ -2136,14 +2245,14 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected retry policy name".to_string()); + p.error("retry policy name".to_string()); } // Config block if p.at(TokenKind::LBrace) { p.parse_config_block(); } else { - p.error("Expected retry policy body".to_string()); + p.error("retry policy body".to_string()); } }); } @@ -2160,7 +2269,7 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected template string name".to_string()); + p.error("template string name".to_string()); } // Parameters @@ -2168,7 +2277,7 @@ impl<'a> Parser<'a> { // Template body (raw string) if !p.parse_any_string() { - p.error("Expected template string body".to_string()); + p.error("template string body".to_string()); } }); } @@ -2182,14 +2291,14 @@ impl<'a> Parser<'a> { if p.at(TokenKind::Word) && p.current().map(|t| t.text == "type").unwrap_or(false) { p.bump(); } else { - p.error("Expected 'type' keyword".to_string()); + p.error("'type' keyword".to_string()); } // Type alias name if p.at(TokenKind::Word) { p.bump(); } else { - p.error("Expected type alias name".to_string()); + p.error("type alias name".to_string()); } // Equals @@ -2235,7 +2344,7 @@ fn parse_impl(tokens: &[Token], cache: Option<&mut NodeCache>) -> (GreenNode, Ve { parser.parse_type_alias(); } else { - parser.error("Expected top-level declaration".to_string()); + parser.error("top-level declaration".to_string()); parser.bump(); // Skip unknown token } } diff --git a/baml_language/crates/baml_tests/Cargo.toml b/baml_language/crates/baml_tests/Cargo.toml index 100d80003a..94a53dde34 100644 --- a/baml_language/crates/baml_tests/Cargo.toml +++ b/baml_language/crates/baml_tests/Cargo.toml @@ -11,6 +11,7 @@ doctest = false [dependencies] baml_db = { workspace = true } +baml_diagnostics = { workspace = true } insta.workspace = true diff --git a/baml_language/crates/baml_tests/build.rs b/baml_language/crates/baml_tests/build.rs index 32d8b1cd90..cd50621212 100644 --- a/baml_language/crates/baml_tests/build.rs +++ b/baml_language/crates/baml_tests/build.rs @@ -197,6 +197,11 @@ fn generate_project_tests(file: &mut File, project: &TestProject) -> std::io::Re writeln!(file, " use baml_db::baml_thir;")?; writeln!(file, " use baml_db::baml_codegen;")?; writeln!(file, " use baml_db::Diagnostic;")?; + writeln!( + file, + " use baml_diagnostics::render_diagnostic_with_color;" + )?; + writeln!(file, " use std::collections::HashMap;")?; writeln!(file, " use insta::{{assert_snapshot, with_settings}};")?; writeln!(file, " use std::fmt::Write;")?; writeln!(file, " #[allow(unused_imports)]")?; @@ -332,11 +337,16 @@ fn generate_parser_test( " let content = content.replace(\"\\r\\n\", \"\\n\");" )?; writeln!(file, " let mut db = RootDatabase::new();")?; + writeln!(file, " let mut sources = HashMap::new();")?; writeln!( file, " let source_file = db.add_file(\"{}\", &content);", baml_file.relative_path.display() )?; + writeln!( + file, + " sources.insert(source_file.file_id(&db), content.clone());" + )?; writeln!( file, " let tree = baml_parser::syntax_tree(&db, source_file);" @@ -365,7 +375,7 @@ fn generate_parser_test( writeln!(file, " for error in errors.iter() {{")?; writeln!( file, - " writeln!(output, \" {{}}\", error.message()).unwrap();" + " writeln!(output, \"{{}}\", render_diagnostic_with_color(error, &sources, false)).unwrap();" )?; writeln!(file, " }}")?; writeln!(file, " }}")?; @@ -545,6 +555,7 @@ fn generate_diagnostics_test(file: &mut File, project: &TestProject) -> std::io: writeln!(file, " #[test]")?; writeln!(file, " fn test_05_diagnostics() {{")?; writeln!(file, " let mut db = RootDatabase::new();")?; + writeln!(file, " let mut sources = HashMap::new();")?; writeln!(file, " let mut all_errors = Vec::new();")?; writeln!(file)?; @@ -567,6 +578,10 @@ fn generate_diagnostics_test(file: &mut File, project: &TestProject) -> std::io: )?; writeln!(file, " &content,")?; writeln!(file, " );")?; + writeln!( + file, + " sources.insert(source_file.file_id(&db), content.clone());" + )?; writeln!(file)?; writeln!( file, @@ -575,7 +590,7 @@ fn generate_diagnostics_test(file: &mut File, project: &TestProject) -> std::io: writeln!(file, " for error in errors {{")?; writeln!( file, - " all_errors.push((\"parse\".to_string(), error.message()));" + " all_errors.push((\"parse\".to_string(), render_diagnostic_with_color(&error, &sources, false)));" )?; writeln!(file, " }}")?; writeln!(file, " }}")?; diff --git a/baml_language/crates/baml_tests/projects/parser_expressions/binary_ops.baml b/baml_language/crates/baml_tests/projects/parser_expressions/binary_ops.baml index 422e42fb8f..c4f78fe33c 100644 --- a/baml_language/crates/baml_tests/projects/parser_expressions/binary_ops.baml +++ b/baml_language/crates/baml_tests/projects/parser_expressions/binary_ops.baml @@ -1,7 +1,7 @@ function Calculate() -> int { - let a = 1 + 2 - let b = a * 3 - let c = b / 2 - 1 - let d = (a + b) * c - return d + let a = 1 + 2; + let b = a * 3; + let c = b / 2 - 1; + let d = (a + b) * c; + return d; } diff --git a/baml_language/crates/baml_tests/projects/parser_expressions/match_expressions.baml b/baml_language/crates/baml_tests/projects/parser_expressions/match_expressions.baml index 075b8acdf7..438358944e 100644 --- a/baml_language/crates/baml_tests/projects/parser_expressions/match_expressions.baml +++ b/baml_language/crates/baml_tests/projects/parser_expressions/match_expressions.baml @@ -5,20 +5,20 @@ enum Status { SUSPENDED } -function HandleStatus(status Status) -> string { +function HandleStatus(status: Status) -> string { match status { - Status::PENDING => "Waiting for approval" - Status::ACTIVE => "Currently active" - Status::INACTIVE => "Not active" - Status::SUSPENDED => "Temporarily suspended" + Status::PENDING => "Waiting for approval", + Status::ACTIVE => "Currently active", + Status::INACTIVE => "Not active", + Status::SUSPENDED => "Temporarily suspended", } } -function ComplexMatch(value int) -> string { +function ComplexMatch(value: int) -> string { match value { - 0 => "zero" - 1 | 2 | 3 => "small" - 4..10 => "medium" - _ => "large" + 0 => "zero", + 1 | 2 | 3 => "small", + 4..10 => "medium", + _ => "large", } -} +} \ No newline at end of file diff --git a/baml_language/crates/baml_tests/projects/parser_expressions/precedence.baml b/baml_language/crates/baml_tests/projects/parser_expressions/precedence.baml index de79498576..9bb83ad09a 100644 --- a/baml_language/crates/baml_tests/projects/parser_expressions/precedence.baml +++ b/baml_language/crates/baml_tests/projects/parser_expressions/precedence.baml @@ -1,12 +1,13 @@ function TestPrecedence() -> bool { // Multiplication before addition - let a = 2 + 3 * 4 // Should be 14, not 20 - + let a = 2 + 3 * 4; // Should be 14, not 20 + let c = 2 * 3 + 4; // Should be 10, not 14 + // Comparison after arithmetic - let b = a > 10 + 2 // Should be a > 12 - + let b = a > 10 + 2; // Should be a > 12 + // Logical operators - let c = true || false && false // Should be true (AND before OR) - - return c + let d = true || false && false; // Should be true (AND before OR) + + return d; } diff --git a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__02_parser__functions.snap b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__02_parser__functions.snap index 0bc1e7256a..0e10af6dfd 100644 --- a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__02_parser__functions.snap +++ b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__02_parser__functions.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 92 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === diff --git a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__05_diagnostics.snap index 83b79be4e7..555b982606 100644 --- a/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/basic_types/baml_tests__basic_types__05_diagnostics.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 249 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === diff --git a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__02_parser__syntax_errors.snap b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__02_parser__syntax_errors.snap index 7b45ebfccf..106240a265 100644 --- a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__02_parser__syntax_errors.snap +++ b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__02_parser__syntax_errors.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 360 expression: output --- === SYNTAX TREE === @@ -13,19 +12,39 @@ SOURCE_FILE WORD "field" TYPE_EXPR " int" WORD "int" + FUNCTION_DEF KW_FUNCTION "function" INTEGER_LITERAL "123" - FIELD - WORD "Invalid" - TYPE_EXPR - L_PAREN "(" - TYPE_EXPR - R_PAREN ")" - L_BRACE "{" - R_BRACE "}" + WORD "Invalid" + PARAMETER_LIST "()" + L_PAREN "(" + R_PAREN ")" + EXPR_FUNCTION_BODY + BLOCK_EXPR " {}" + L_BRACE "{" + R_BRACE "}" === ERRORS === - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body +Error: Expected RBrace, found Function + ╭─[ 0:6:1 ] + │ + 6 │ function 123Invalid() {} + │ ────┬─── + │ ╰───── Expected RBrace, found Function +───╯ + +Error: Expected function name, found IntegerLiteral + ╭─[ 0:6:10 ] + │ + 6 │ function 123Invalid() {} + │ ─┬─ + │ ╰─── Expected function name, found IntegerLiteral +───╯ + +Error: Expected return type (->), found LBrace + ╭─[ 0:6:23 ] + │ + 6 │ function 123Invalid() {} + │ ┬ + │ ╰── Expected return type (->), found LBrace +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap index bdd782d599..1305c9f46e 100644 --- a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__03_hir.snap @@ -1,9 +1,17 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === HIR ITEMS === +function Invalid { + return: Unknown + body: Expr { + exprs: [ + Idx::(0): Block { stmts: [], tail_expr: None } + ] + root: Idx::(0) + } +} class Broken { field: Int - Invalid: Path(Path { segments: ["()"], kind: Plain }) } diff --git a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__05_diagnostics.snap index 9af5f433b0..13fe9fcdff 100644 --- a/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/error_cases/baml_tests__error_cases__05_diagnostics.snap @@ -1,10 +1,28 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 461 expression: output --- === DIAGNOSTICS === - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body + [parse] Error: Expected RBrace, found Function + ╭─[ 0:6:1 ] + │ + 6 │ function 123Invalid() {} + │ ────┬─── + │ ╰───── Expected RBrace, found Function +───╯ + + [parse] Error: Expected function name, found IntegerLiteral + ╭─[ 0:6:10 ] + │ + 6 │ function 123Invalid() {} + │ ─┬─ + │ ╰─── Expected function name, found IntegerLiteral +───╯ + + [parse] Error: Expected return type (->), found LBrace + ╭─[ 0:6:23 ] + │ + 6 │ function 123Invalid() {} + │ ┬ + │ ╰── Expected return type (->), found LBrace +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__invalid_syntax.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__invalid_syntax.snap index 04e1d6cbf3..83562dc934 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__invalid_syntax.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__invalid_syntax.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 1377 expression: output --- === SYNTAX TREE === @@ -35,22 +34,107 @@ SOURCE_FILE ARROW "->" TYPE_EXPR EXPR_FUNCTION_BODY - BLOCK_EXPR " { // Missing return type - client GPT4 -}" + BLOCK_EXPR " {" L_BRACE "{" - KW_CLIENT "client" - WORD "GPT4" - R_BRACE "}" + CLIENT_DEF " // Missing return type + client GPT4" + KW_CLIENT "client" + WORD "GPT4" + R_BRACE "}" === ERRORS === - Expected Expected class name, found Expected class name - Expected Expected LBrace, found IntegerLiteral, found Expected LBrace, found IntegerLiteral - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected type, found Expected type - Expected Expected expression, found Expected expression +Error: Expected class name, found IntegerLiteral + ╭─[ 0:1:7 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ─┬─ + │ ╰─── Expected class name, found IntegerLiteral +───╯ + +Error: Expected LBrace, found IntegerLiteral + ╭─[ 0:1:7 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ─┬─ + │ ╰─── Expected LBrace, found IntegerLiteral +───╯ + +Error: Expected top-level declaration, found IntegerLiteral + ╭─[ 0:1:7 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ─┬─ + │ ╰─── Expected top-level declaration, found IntegerLiteral +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:1:10 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:1:18 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:2:3 ] + │ + 2 │ field string + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:2:9 ] + │ + 2 │ field string + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:3:1 ] + │ + 3 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ + +Error: Expected type, found LBrace + ╭─[ 0:10:19 ] + │ + 10 │ function Foo() -> { // Missing return type + │ ┬ + │ ╰── Expected type, found LBrace +────╯ + +Error: Expected RBrace, found Client + ╭─[ 0:11:3 ] + │ + 11 │ client GPT4 + │ ───┬── + │ ╰──── Expected RBrace, found Client +────╯ + +Error: Expected config block, found RBrace + ╭─[ 0:12:1 ] + │ + 12 │ } + │ ┬ + │ ╰── Expected config block, found RBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:12:1 ] + │ + 12 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__missing_braces.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__missing_braces.snap index 85e3c9974a..f8ea63d62b 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__missing_braces.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__missing_braces.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 1404 expression: output --- === SYNTAX TREE === @@ -13,10 +12,9 @@ SOURCE_FILE WORD "name" TYPE_EXPR " string" WORD "string" + CLASS_DEF KW_CLASS "class" - FIELD - WORD "Another" - TYPE_EXPR + WORD "Another" L_BRACE "{" FIELD WORD "field" @@ -25,6 +23,10 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body +Error: Expected RBrace, found Class + ╭─[ 0:5:1 ] + │ + 5 │ class Another { // Should still parse this class + │ ──┬── + │ ╰──── Expected RBrace, found Class +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap index 99e05ac066..fbad14dd5c 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__partial_input.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -87,13 +87,82 @@ enum // Missing enum name R_BRACE "}" === ERRORS === - Expected Expected type, found Expected type - Expected Expected type, found Expected type - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected type, found Expected type - Expected Expected RParen, found Function, found Expected RParen, found Function - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected LBrace, found Word, found Expected LBrace, found Word - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +Error: Expected type, found At + ╭─[ 0:5:17 ] + │ + 5 │ field3 string @ // Incomplete attribute + │ ┬ + │ ╰── Expected type, found At +───╯ + +Error: Expected type, found At + ╭─[ 0:6:17 ] + │ + 6 │ field4 string @alias( // Unclosed attribute + │ ┬ + │ ╰── Expected type, found At +───╯ + +Error: Expected RParen, found Word + ╭─[ 0:7:10 ] + │ + 7 │ field5 string // This should parse correctly + │ ───┬── + │ ╰──── Expected RParen, found Word +───╯ + +Error: Expected type, found RBrace + ╭─[ 0:8:1 ] + │ + 8 │ } + │ ┬ + │ ╰── Expected type, found RBrace +───╯ + +Error: Expected RParen, found Function + ╭─[ 0:13:1 ] + │ + 13 │ function NextFunction() -> string { // Should still parse this + │ ────┬─── + │ ╰───── Expected RParen, found Function +────╯ + +Error: Expected return type (->), found Function + ╭─[ 0:13:1 ] + │ + 13 │ function NextFunction() -> string { // Should still parse this + │ ────┬─── + │ ╰───── Expected return type (->), found Function +────╯ + +Error: Expected function body, found Function + ╭─[ 0:13:1 ] + │ + 13 │ function NextFunction() -> string { // Should still parse this + │ ────┬─── + │ ╰───── Expected function body, found Function +────╯ + +Error: Expected LBrace, found Word + ╭─[ 0:19:3 ] + │ + 19 │ VALUE2 + │ ───┬── + │ ╰──── Expected LBrace, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:19:3 ] + │ + 19 │ VALUE2 + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:20:1 ] + │ + 20 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__unclosed_string.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__unclosed_string.snap index 0e4e3d64e3..580f79aaba 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__unclosed_string.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__02_parser__unclosed_string.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 1458 expression: output --- === SYNTAX TREE === @@ -64,6 +63,26 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Unclosed string literal, found Unclosed string literal - Expected Expected RBrace, found EOF, found Expected RBrace, found EOF +Error: Expected RParen, found Word + ╭─[ 0:4:25 ] + │ + 4 │ field3 string @alias("another closed string") // Should still parse this + │ ───┬─── + │ ╰───── Expected RParen, found Word +───╯ + +Error: Expected Unclosed string literal, found EOF + ╭─[ 0:5:2 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected Unclosed string literal, found EOF +───╯ + +Error: Expected RBrace, found EOF + ╭─[ 0:5:2 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected RBrace, found EOF +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap index 39ac56f92a..b9484e0ffb 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__03_hir.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === HIR ITEMS === @@ -17,9 +17,13 @@ enum Status { EnumVariant { name: "INACTIVE" } EnumVariant { name: "PENDING" } } +client GPT4 { + provider: unknown +} class User { name: String - Another: Path(Path { segments: [""], kind: Plain }) +} +class Another { field: Int } function NextFunction { diff --git a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap index 0ff650ee8c..a74d001976 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_error_recovery/baml_tests__parser_error_recovery__05_diagnostics.snap @@ -1,31 +1,212 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === DIAGNOSTICS === - [parse] Expected Expected class name, found Expected class name - [parse] Expected Expected LBrace, found IntegerLiteral, found Expected LBrace, found IntegerLiteral - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected type, found Expected type - [parse] Expected Expected expression, found Expected expression - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected type, found Expected type - [parse] Expected Expected type, found Expected type - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected type, found Expected type - [parse] Expected Expected RParen, found Function, found Expected RParen, found Function - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected LBrace, found Word, found Expected LBrace, found Word - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Unclosed string literal, found Unclosed string literal - [parse] Expected Expected RBrace, found EOF, found Expected RBrace, found EOF + [parse] Error: Expected class name, found IntegerLiteral + ╭─[ 0:1:7 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ─┬─ + │ ╰─── Expected class name, found IntegerLiteral +───╯ + + [parse] Error: Expected LBrace, found IntegerLiteral + ╭─[ 0:1:7 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ─┬─ + │ ╰─── Expected LBrace, found IntegerLiteral +───╯ + + [parse] Error: Expected top-level declaration, found IntegerLiteral + ╭─[ 0:1:7 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ─┬─ + │ ╰─── Expected top-level declaration, found IntegerLiteral +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 0:1:10 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 0:1:18 ] + │ + 1 │ class 123Invalid { // Invalid class name + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 0:2:3 ] + │ + 2 │ field string + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 0:2:9 ] + │ + 2 │ field string + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 0:3:1 ] + │ + 3 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ + + [parse] Error: Expected type, found LBrace + ╭─[ 0:10:19 ] + │ + 10 │ function Foo() -> { // Missing return type + │ ┬ + │ ╰── Expected type, found LBrace +────╯ + + [parse] Error: Expected RBrace, found Client + ╭─[ 0:11:3 ] + │ + 11 │ client GPT4 + │ ───┬── + │ ╰──── Expected RBrace, found Client +────╯ + + [parse] Error: Expected config block, found RBrace + ╭─[ 0:12:1 ] + │ + 12 │ } + │ ┬ + │ ╰── Expected config block, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 0:12:1 ] + │ + 12 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected RBrace, found Class + ╭─[ 1:5:1 ] + │ + 5 │ class Another { // Should still parse this class + │ ──┬── + │ ╰──── Expected RBrace, found Class +───╯ + + [parse] Error: Expected type, found At + ╭─[ 2:5:17 ] + │ + 5 │ field3 string @ // Incomplete attribute + │ ┬ + │ ╰── Expected type, found At +───╯ + + [parse] Error: Expected type, found At + ╭─[ 2:6:17 ] + │ + 6 │ field4 string @alias( // Unclosed attribute + │ ┬ + │ ╰── Expected type, found At +───╯ + + [parse] Error: Expected RParen, found Word + ╭─[ 2:7:10 ] + │ + 7 │ field5 string // This should parse correctly + │ ───┬── + │ ╰──── Expected RParen, found Word +───╯ + + [parse] Error: Expected type, found RBrace + ╭─[ 2:8:1 ] + │ + 8 │ } + │ ┬ + │ ╰── Expected type, found RBrace +───╯ + + [parse] Error: Expected RParen, found Function + ╭─[ 2:13:1 ] + │ + 13 │ function NextFunction() -> string { // Should still parse this + │ ────┬─── + │ ╰───── Expected RParen, found Function +────╯ + + [parse] Error: Expected return type (->), found Function + ╭─[ 2:13:1 ] + │ + 13 │ function NextFunction() -> string { // Should still parse this + │ ────┬─── + │ ╰───── Expected return type (->), found Function +────╯ + + [parse] Error: Expected function body, found Function + ╭─[ 2:13:1 ] + │ + 13 │ function NextFunction() -> string { // Should still parse this + │ ────┬─── + │ ╰───── Expected function body, found Function +────╯ + + [parse] Error: Expected LBrace, found Word + ╭─[ 2:19:3 ] + │ + 19 │ VALUE2 + │ ───┬── + │ ╰──── Expected LBrace, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 2:19:3 ] + │ + 19 │ VALUE2 + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 2:20:1 ] + │ + 20 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected RParen, found Word + ╭─[ 3:4:25 ] + │ + 4 │ field3 string @alias("another closed string") // Should still parse this + │ ───┬─── + │ ╰───── Expected RParen, found Word +───╯ + + [parse] Error: Expected Unclosed string literal, found EOF + ╭─[ 3:5:2 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected Unclosed string literal, found EOF +───╯ + + [parse] Error: Expected RBrace, found EOF + ╭─[ 3:5:2 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected RBrace, found EOF +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__binary_ops.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__binary_ops.snap index 7fd715792f..802d975940 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__binary_ops.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__binary_ops.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 1947 expression: output --- Function "function" @@ -16,12 +15,14 @@ Equals "=" IntegerLiteral "1" Plus "+" IntegerLiteral "2" +Semicolon ";" Let "let" Word "b" Equals "=" Word "a" Star "*" IntegerLiteral "3" +Semicolon ";" Let "let" Word "c" Equals "=" @@ -30,6 +31,7 @@ Slash "/" IntegerLiteral "2" Minus "-" IntegerLiteral "1" +Semicolon ";" Let "let" Word "d" Equals "=" @@ -40,6 +42,8 @@ Word "b" RParen ")" Star "*" Word "c" +Semicolon ";" Return "return" Word "d" +Semicolon ";" RBrace "}" diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__match_expressions.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__match_expressions.snap index 2364d7484d..c9309af484 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__match_expressions.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__match_expressions.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 1997 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- Enum "enum" @@ -15,6 +14,7 @@ Function "function" Word "HandleStatus" LParen "(" Word "status" +Colon ":" Word "Status" RParen ")" Arrow "->" @@ -33,6 +33,7 @@ Word "Waiting" For "for" Word "approval" Quote "\"" +Comma "," Word "Status" DoubleColon "::" Word "ACTIVE" @@ -42,6 +43,7 @@ Quote "\"" Word "Currently" Word "active" Quote "\"" +Comma "," Word "Status" DoubleColon "::" Word "INACTIVE" @@ -51,6 +53,7 @@ Quote "\"" Word "Not" Word "active" Quote "\"" +Comma "," Word "Status" DoubleColon "::" Word "SUSPENDED" @@ -60,12 +63,14 @@ Quote "\"" Word "Temporarily" Word "suspended" Quote "\"" +Comma "," RBrace "}" RBrace "}" Function "function" Word "ComplexMatch" LParen "(" Word "value" +Colon ":" Word "int" RParen ")" Arrow "->" @@ -80,6 +85,7 @@ Greater ">" Quote "\"" Word "zero" Quote "\"" +Comma "," IntegerLiteral "1" Pipe "|" IntegerLiteral "2" @@ -90,6 +96,7 @@ Greater ">" Quote "\"" Word "small" Quote "\"" +Comma "," IntegerLiteral "4" Dot "." Dot "." @@ -99,11 +106,13 @@ Greater ">" Quote "\"" Word "medium" Quote "\"" +Comma "," Word "_" Equals "=" Greater ">" Quote "\"" Word "large" Quote "\"" +Comma "," RBrace "}" RBrace "}" diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__precedence.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__precedence.snap index 564d76db37..2bde78c388 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__precedence.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__01_lexer__precedence.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2022 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- Function "function" @@ -23,6 +22,7 @@ Plus "+" IntegerLiteral "3" Star "*" IntegerLiteral "4" +Semicolon ";" Slash "/" Slash "/" Word "Should" @@ -31,6 +31,23 @@ IntegerLiteral "14" Comma "," Word "not" IntegerLiteral "20" +Let "let" +Word "c" +Equals "=" +IntegerLiteral "2" +Star "*" +IntegerLiteral "3" +Plus "+" +IntegerLiteral "4" +Semicolon ";" +Slash "/" +Slash "/" +Word "Should" +Word "be" +IntegerLiteral "10" +Comma "," +Word "not" +IntegerLiteral "14" Slash "/" Slash "/" Word "Comparison" @@ -44,6 +61,7 @@ Greater ">" IntegerLiteral "10" Plus "+" IntegerLiteral "2" +Semicolon ";" Slash "/" Slash "/" Word "Should" @@ -56,13 +74,14 @@ Slash "/" Word "Logical" Word "operators" Let "let" -Word "c" +Word "d" Equals "=" Word "true" OrOr "||" Word "false" AndAnd "&&" Word "false" +Semicolon ";" Slash "/" Slash "/" Word "Should" @@ -74,5 +93,6 @@ Word "before" Word "OR" RParen ")" Return "return" -Word "c" +Word "d" +Semicolon ";" RBrace "}" diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__binary_ops.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__binary_ops.snap index 44b8b1a823..6de93f6463 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__binary_ops.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__binary_ops.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2049 expression: output --- === SYNTAX TREE === @@ -25,6 +24,7 @@ SOURCE_FILE INTEGER_LITERAL "1" PLUS "+" INTEGER_LITERAL "2" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "b" @@ -33,6 +33,7 @@ SOURCE_FILE WORD "a" STAR "*" INTEGER_LITERAL "3" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "c" @@ -44,6 +45,7 @@ SOURCE_FILE INTEGER_LITERAL "2" MINUS "-" INTEGER_LITERAL "1" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "d" @@ -58,10 +60,12 @@ SOURCE_FILE R_PAREN ")" STAR "*" WORD "c" + SEMICOLON ";" RETURN_STMT " - return d" + return d;" KW_RETURN "return" WORD "d" + SEMICOLON ";" R_BRACE "}" === ERRORS === diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap index 1afba04f07..7a6606b8aa 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__field_access.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -28,7 +28,7 @@ SOURCE_FILE WORD "user" DOT "." WORD "name" - SEMICOLON ";" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "bio" @@ -39,7 +39,7 @@ SOURCE_FILE WORD "profile" DOT "." WORD "bio" - SEMICOLON ";" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "theme" @@ -52,7 +52,7 @@ SOURCE_FILE WORD "settings" DOT "." WORD "theme" - SEMICOLON ";" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "firstTag" @@ -65,13 +65,13 @@ SOURCE_FILE L_BRACKET "[" INTEGER_LITERAL "0" R_BRACKET "]" - SEMICOLON ";" + SEMICOLON ";" RETURN_STMT " - return theme" + return theme;" KW_RETURN "return" WORD "theme" - SEMICOLON ";" + SEMICOLON ";" R_BRACE "}" CLASS_DEF KW_CLASS "class" @@ -116,8 +116,4 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap index ef915814c9..1bce68c0fe 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__index_access.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -50,16 +50,16 @@ SOURCE_FILE L_BRACKET "[" INTEGER_LITERAL "0" R_BRACKET "]" - SEMICOLON ";" + SEMICOLON ";" LET_STMT " // Array indexing with variable - let idx = 1" + let idx = 1;" KW_LET "let" WORD "idx" EQUALS "=" INTEGER_LITERAL "1" - SEMICOLON ";" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "second" @@ -69,7 +69,7 @@ SOURCE_FILE L_BRACKET "[" WORD "idx" R_BRACKET "]" - SEMICOLON ";" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "firstName" @@ -82,7 +82,7 @@ SOURCE_FILE R_BRACKET "]" DOT "." WORD "name" - SEMICOLON ";" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "tag" @@ -99,19 +99,14 @@ SOURCE_FILE L_BRACKET "[" INTEGER_LITERAL "0" R_BRACKET "]" - SEMICOLON ";" + SEMICOLON ";" RETURN_STMT " - return firstName" + return firstName;" KW_RETURN "return" WORD "firstName" - SEMICOLON ";" + SEMICOLON ";" R_BRACE "}" === ERRORS === - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression +None diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap index 30a8db9c44..46c28bb4b3 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__match_expressions.snap @@ -28,6 +28,7 @@ SOURCE_FILE L_PAREN "(" PARAMETER WORD "status" + COLON ":" TYPE_EXPR " Status" WORD "Status" R_PAREN ")" @@ -56,6 +57,7 @@ SOURCE_FILE KW_FOR "for" WORD "approval" QUOTE """ + COMMA "," OBJECT_FIELD " Status" WORD "Status" @@ -70,6 +72,7 @@ SOURCE_FILE WORD "Currently" WORD "active" QUOTE """ + COMMA "," OBJECT_FIELD " Status" WORD "Status" @@ -84,6 +87,7 @@ SOURCE_FILE WORD "Not" WORD "active" QUOTE """ + COMMA "," OBJECT_FIELD " Status" WORD "Status" @@ -98,6 +102,7 @@ SOURCE_FILE WORD "Temporarily" WORD "suspended" QUOTE """ + COMMA "," R_BRACE "}" R_BRACE "}" FUNCTION_DEF @@ -107,6 +112,7 @@ SOURCE_FILE L_PAREN "(" PARAMETER WORD "value" + COLON ":" TYPE_EXPR " int" WORD "int" R_PAREN ")" @@ -128,6 +134,7 @@ SOURCE_FILE QUOTE """ WORD "zero" QUOTE """ + COMMA "," INTEGER_LITERAL "1" PIPE "|" INTEGER_LITERAL "2" @@ -140,6 +147,7 @@ SOURCE_FILE QUOTE """ WORD "small" QUOTE """ + COMMA "," INTEGER_LITERAL "4" DOT "." DOT "." @@ -151,6 +159,7 @@ SOURCE_FILE QUOTE """ WORD "medium" QUOTE """ + COMMA "," OBJECT_FIELD " _" WORD "_" @@ -161,58 +170,383 @@ SOURCE_FILE QUOTE """ WORD "large" QUOTE """ + COMMA "," R_BRACE "}" R_BRACE "}" === ERRORS === - Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found Equals, found Expected Colon, found Equals - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found Word, found Expected Colon, found Word - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found Equals, found Expected Colon, found Equals - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found Word, found Expected Colon, found Word - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found Equals, found Expected Colon, found Equals - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found Word, found Expected Colon, found Word - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found Equals, found Expected Colon, found Equals - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found RBrace, found Expected Colon, found RBrace - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found Word, found Expected Colon, found Word - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected Colon, found Equals, found Expected Colon, found Equals - Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - Expected Expected field name or '}', found Expected field name or '}' - Expected Expected Colon, found RBrace, found Expected Colon, found RBrace +Error: Expected Colon, found DoubleColon + ╭─[ 0:10:11 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + +Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 0:10:11 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + +Error: Expected Colon, found Equals + ╭─[ 0:10:21 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + +Error: Expected ',' or '}' after object field, found Equals + ╭─[ 0:10:21 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:10:22 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:10:46 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + +Error: Expected Colon, found DoubleColon + ╭─[ 0:11:11 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + +Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 0:11:11 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + +Error: Expected Colon, found Equals + ╭─[ 0:11:20 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + +Error: Expected ',' or '}' after object field, found Equals + ╭─[ 0:11:20 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:11:21 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:11:41 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + +Error: Expected Colon, found DoubleColon + ╭─[ 0:12:11 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + +Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 0:12:11 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + +Error: Expected Colon, found Equals + ╭─[ 0:12:22 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + +Error: Expected ',' or '}' after object field, found Equals + ╭─[ 0:12:22 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:12:23 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:12:37 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + +Error: Expected Colon, found DoubleColon + ╭─[ 0:13:11 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + +Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 0:13:11 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + +Error: Expected Colon, found Equals + ╭─[ 0:13:23 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + +Error: Expected ',' or '}' after object field, found Equals + ╭─[ 0:13:23 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:13:24 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:13:49 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + +Error: Expected field name or '}', found IntegerLiteral + ╭─[ 0:19:5 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + +Error: Expected field name or '}', found Equals + ╭─[ 0:19:7 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected field name or '}', found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:19:8 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:19:16 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + +Error: Expected field name or '}', found IntegerLiteral + ╭─[ 0:20:5 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + +Error: Expected field name or '}', found Pipe + ╭─[ 0:20:7 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Pipe +────╯ + +Error: Expected field name or '}', found IntegerLiteral + ╭─[ 0:20:9 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + +Error: Expected field name or '}', found Pipe + ╭─[ 0:20:11 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Pipe +────╯ + +Error: Expected field name or '}', found IntegerLiteral + ╭─[ 0:20:13 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + +Error: Expected field name or '}', found Equals + ╭─[ 0:20:15 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:20:16 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:20:25 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + +Error: Expected field name or '}', found IntegerLiteral + ╭─[ 0:21:5 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + +Error: Expected field name or '}', found Dot + ╭─[ 0:21:6 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Dot +────╯ + +Error: Expected field name or '}', found Dot + ╭─[ 0:21:7 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Dot +────╯ + +Error: Expected field name or '}', found IntegerLiteral + ╭─[ 0:21:8 ] + │ + 21 │ 4..10 => "medium", + │ ─┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + +Error: Expected field name or '}', found Equals + ╭─[ 0:21:11 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:21:12 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:21:22 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + +Error: Expected Colon, found Equals + ╭─[ 0:22:7 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + +Error: Expected ',' or '}' after object field, found Equals + ╭─[ 0:22:7 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + +Error: Expected field name or '}', found Greater + ╭─[ 0:22:8 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + +Error: Expected Colon, found Comma + ╭─[ 0:22:17 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__precedence.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__precedence.snap index 6f9213ab8c..81f1892750 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__precedence.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__02_parser__precedence.snap @@ -1,6 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 2130 +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -28,6 +27,19 @@ SOURCE_FILE INTEGER_LITERAL "3" STAR "*" INTEGER_LITERAL "4" + SEMICOLON ";" + LET_STMT + KW_LET "let" + WORD "c" + EQUALS "=" + BINARY_EXPR + BINARY_EXPR "2 * 3" + INTEGER_LITERAL "2" + STAR "*" + INTEGER_LITERAL "3" + PLUS "+" + INTEGER_LITERAL "4" + SEMICOLON ";" LET_STMT KW_LET "let" WORD "b" @@ -39,9 +51,10 @@ SOURCE_FILE INTEGER_LITERAL "10" PLUS "+" INTEGER_LITERAL "2" + SEMICOLON ";" LET_STMT KW_LET "let" - WORD "c" + WORD "d" EQUALS "=" BINARY_EXPR WORD "true" @@ -50,11 +63,13 @@ SOURCE_FILE WORD "false" AND_AND "&&" WORD "false" + SEMICOLON ";" RETURN_STMT " // Should be true (AND before OR) - - return c" + + return d;" KW_RETURN "return" - WORD "c" + WORD "d" + SEMICOLON ";" R_BRACE "}" === ERRORS === diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap index 61da74280d..32b839dac8 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__03_hir.snap @@ -187,25 +187,31 @@ function TestPrecedence { Idx::(2): Literal(Int(4)) Idx::(3): Binary { op: Mul, lhs: Idx::(1), rhs: Idx::(2) } Idx::(4): Binary { op: Add, lhs: Idx::(0), rhs: Idx::(3) } - Idx::(5): Path("a") - Idx::(6): Literal(Int(10)) - Idx::(7): Literal(Int(2)) - Idx::(8): Binary { op: Add, lhs: Idx::(6), rhs: Idx::(7) } - Idx::(9): Binary { op: Gt, lhs: Idx::(5), rhs: Idx::(8) } - Idx::(10): Literal(Bool(true)) - Idx::(11): Literal(Bool(false)) - Idx::(12): Literal(Bool(false)) - Idx::(13): Binary { op: And, lhs: Idx::(11), rhs: Idx::(12) } - Idx::(14): Binary { op: Or, lhs: Idx::(10), rhs: Idx::(13) } - Idx::(15): Path("c") - Idx::(16): Block { stmts: [Idx::(0), Idx::(1), Idx::(2), Idx::(3)], tail_expr: None } + Idx::(5): Literal(Int(2)) + Idx::(6): Literal(Int(3)) + Idx::(7): Binary { op: Mul, lhs: Idx::(5), rhs: Idx::(6) } + Idx::(8): Literal(Int(4)) + Idx::(9): Binary { op: Add, lhs: Idx::(7), rhs: Idx::(8) } + Idx::(10): Path("a") + Idx::(11): Literal(Int(10)) + Idx::(12): Literal(Int(2)) + Idx::(13): Binary { op: Add, lhs: Idx::(11), rhs: Idx::(12) } + Idx::(14): Binary { op: Gt, lhs: Idx::(10), rhs: Idx::(13) } + Idx::(15): Literal(Bool(true)) + Idx::(16): Literal(Bool(false)) + Idx::(17): Literal(Bool(false)) + Idx::(18): Binary { op: And, lhs: Idx::(16), rhs: Idx::(17) } + Idx::(19): Binary { op: Or, lhs: Idx::(15), rhs: Idx::(18) } + Idx::(20): Path("d") + Idx::(21): Block { stmts: [Idx::(0), Idx::(1), Idx::(2), Idx::(3), Idx::(4)], tail_expr: None } ] stmts: [ Idx::(0): Let { pattern: Idx::(0), type_annotation: None, initializer: Some(Idx::(4)) } Idx::(1): Let { pattern: Idx::(1), type_annotation: None, initializer: Some(Idx::(9)) } Idx::(2): Let { pattern: Idx::(2), type_annotation: None, initializer: Some(Idx::(14)) } - Idx::(3): Return(Some(Idx::(15))) + Idx::(3): Let { pattern: Idx::(3), type_annotation: None, initializer: Some(Idx::(19)) } + Idx::(4): Return(Some(Idx::(20))) ] - root: Idx::(16) + root: Idx::(21) } } diff --git a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap index e82df469b2..24807c5b31 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_expressions/baml_tests__parser_expressions__05_diagnostics.snap @@ -3,65 +3,378 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found Word, found Expected Colon, found Word - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found Word, found Expected Colon, found Word - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found Word, found Expected Colon, found Word - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found DoubleColon, found Expected Colon, found DoubleColon - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found RBrace, found Expected Colon, found RBrace - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found IntegerLiteral, found Expected Colon, found IntegerLiteral - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found Word, found Expected Colon, found Word - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected Colon, found Equals, found Expected Colon, found Equals - [parse] Expected Expected ',' or '}' after object field, found Expected ',' or '}' after object field - [parse] Expected Expected field name or '}', found Expected field name or '}' - [parse] Expected Expected Colon, found RBrace, found Expected Colon, found RBrace + [parse] Error: Expected Colon, found DoubleColon + ╭─[ 4:10:11 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + + [parse] Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 4:10:11 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + + [parse] Error: Expected Colon, found Equals + ╭─[ 4:10:21 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + + [parse] Error: Expected ',' or '}' after object field, found Equals + ╭─[ 4:10:21 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:10:22 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:10:46 ] + │ + 10 │ Status::PENDING => "Waiting for approval", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + + [parse] Error: Expected Colon, found DoubleColon + ╭─[ 4:11:11 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + + [parse] Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 4:11:11 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + + [parse] Error: Expected Colon, found Equals + ╭─[ 4:11:20 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + + [parse] Error: Expected ',' or '}' after object field, found Equals + ╭─[ 4:11:20 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:11:21 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:11:41 ] + │ + 11 │ Status::ACTIVE => "Currently active", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + + [parse] Error: Expected Colon, found DoubleColon + ╭─[ 4:12:11 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + + [parse] Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 4:12:11 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + + [parse] Error: Expected Colon, found Equals + ╭─[ 4:12:22 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + + [parse] Error: Expected ',' or '}' after object field, found Equals + ╭─[ 4:12:22 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:12:23 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:12:37 ] + │ + 12 │ Status::INACTIVE => "Not active", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + + [parse] Error: Expected Colon, found DoubleColon + ╭─[ 4:13:11 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ─┬ + │ ╰── Expected Colon, found DoubleColon +────╯ + + [parse] Error: Expected ',' or '}' after object field, found DoubleColon + ╭─[ 4:13:11 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ─┬ + │ ╰── Expected ',' or '}' after object field, found DoubleColon +────╯ + + [parse] Error: Expected Colon, found Equals + ╭─[ 4:13:23 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + + [parse] Error: Expected ',' or '}' after object field, found Equals + ╭─[ 4:13:23 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:13:24 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:13:49 ] + │ + 13 │ Status::SUSPENDED => "Temporarily suspended", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + + [parse] Error: Expected field name or '}', found IntegerLiteral + ╭─[ 4:19:5 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + + [parse] Error: Expected field name or '}', found Equals + ╭─[ 4:19:7 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected field name or '}', found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:19:8 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:19:16 ] + │ + 19 │ 0 => "zero", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + + [parse] Error: Expected field name or '}', found IntegerLiteral + ╭─[ 4:20:5 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + + [parse] Error: Expected field name or '}', found Pipe + ╭─[ 4:20:7 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Pipe +────╯ + + [parse] Error: Expected field name or '}', found IntegerLiteral + ╭─[ 4:20:9 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + + [parse] Error: Expected field name or '}', found Pipe + ╭─[ 4:20:11 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Pipe +────╯ + + [parse] Error: Expected field name or '}', found IntegerLiteral + ╭─[ 4:20:13 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + + [parse] Error: Expected field name or '}', found Equals + ╭─[ 4:20:15 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:20:16 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:20:25 ] + │ + 20 │ 1 | 2 | 3 => "small", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + + [parse] Error: Expected field name or '}', found IntegerLiteral + ╭─[ 4:21:5 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + + [parse] Error: Expected field name or '}', found Dot + ╭─[ 4:21:6 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Dot +────╯ + + [parse] Error: Expected field name or '}', found Dot + ╭─[ 4:21:7 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Dot +────╯ + + [parse] Error: Expected field name or '}', found IntegerLiteral + ╭─[ 4:21:8 ] + │ + 21 │ 4..10 => "medium", + │ ─┬ + │ ╰── Expected field name or '}', found IntegerLiteral +────╯ + + [parse] Error: Expected field name or '}', found Equals + ╭─[ 4:21:11 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:21:12 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:21:22 ] + │ + 21 │ 4..10 => "medium", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ + + [parse] Error: Expected Colon, found Equals + ╭─[ 4:22:7 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected Colon, found Equals +────╯ + + [parse] Error: Expected ',' or '}' after object field, found Equals + ╭─[ 4:22:7 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected ',' or '}' after object field, found Equals +────╯ + + [parse] Error: Expected field name or '}', found Greater + ╭─[ 4:22:8 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected field name or '}', found Greater +────╯ + + [parse] Error: Expected Colon, found Comma + ╭─[ 4:22:17 ] + │ + 22 │ _ => "large", + │ ┬ + │ ╰── Expected Colon, found Comma +────╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap index 6c9b2da0ac..b27154932b 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__02_parser__ambiguous_function.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -18,14 +18,13 @@ SOURCE_FILE TYPE_EXPR " string" WORD "string" EXPR_FUNCTION_BODY - BLOCK_EXPR " { - client GPT4 // This keyword determines it's an LLM function - // Even though it starts like it could be expression function -}" + BLOCK_EXPR " {" L_BRACE "{" - KW_CLIENT "client" - WORD "GPT4" - R_BRACE "}" + CLIENT_DEF " + client GPT4" + KW_CLIENT "client" + WORD "GPT4" + R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" WORD "AnotherLLM" @@ -58,4 +57,26 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected expression, found Expected expression +Error: Expected RBrace, found Client + ╭─[ 0:3:3 ] + │ + 3 │ client GPT4 // This keyword determines it's an LLM function + │ ───┬── + │ ╰──── Expected RBrace, found Client +───╯ + +Error: Expected config block, found RBrace + ╭─[ 0:5:1 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected config block, found RBrace +───╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:5:1 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap index b231b282cc..deffd5d1e1 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__03_hir.snap @@ -23,6 +23,9 @@ function AnotherLLM { root: Idx::(0) } } +client GPT4 { + provider: unknown +} function ProcessData { params: [data: Path(Path { segments: ["JsonData"], kind: Plain })] return: String diff --git a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap index aa1e4546c3..978f488ea4 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_speculative/baml_tests__parser_speculative__05_diagnostics.snap @@ -3,4 +3,26 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === - [parse] Expected Expected expression, found Expected expression + [parse] Error: Expected RBrace, found Client + ╭─[ 0:3:3 ] + │ + 3 │ client GPT4 // This keyword determines it's an LLM function + │ ───┬── + │ ╰──── Expected RBrace, found Client +───╯ + + [parse] Error: Expected config block, found RBrace + ╭─[ 0:5:1 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected config block, found RBrace +───╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 0:5:1 ] + │ + 5 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__deeply_nested.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__deeply_nested.snap index 7bdf126117..681f9ea525 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__deeply_nested.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__deeply_nested.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 3395 expression: output --- === SYNTAX TREE === @@ -165,14 +164,90 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected Greater, found GreaterGreater, found Expected Greater, found GreaterGreater - Expected Expected Greater, found GreaterGreater, found Expected Greater, found GreaterGreater - Expected Expected Greater, found GreaterGreater, found Expected Greater, found GreaterGreater - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +Error: Expected Greater, found GreaterGreater + ╭─[ 0:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected Greater, found GreaterGreater +────╯ + +Error: Expected Greater, found GreaterGreater + ╭─[ 0:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected Greater, found GreaterGreater +────╯ + +Error: Expected Greater, found GreaterGreater + ╭─[ 0:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected Greater, found GreaterGreater +────╯ + +Error: Expected function body, found GreaterGreater + ╭─[ 0:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected function body, found GreaterGreater +────╯ + +Error: Expected top-level declaration, found GreaterGreater + ╭─[ 0:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected top-level declaration, found GreaterGreater +────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:28:71 ] + │ + 28 │ function ComplexType() -> map>> { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:28:73 ] + │ + 28 │ function ComplexType() -> map>> { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Return + ╭─[ 0:30:3 ] + │ + 30 │ return {} + │ ───┬── + │ ╰──── Expected top-level declaration, found Return +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:30:10 ] + │ + 30 │ return {} + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:30:11 ] + │ + 30 │ return {} + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:31:1 ] + │ + 31 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__rust.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__rust.snap index a5edef6ae8..3856f6e32c 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__rust.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__rust.snap @@ -1452,1392 +1452,11114 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Unexpected token in enum body, found Unexpected token in enum body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +Error: Expected top-level declaration, found Word + ╭─[ 0:7:1 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:7:5 ] + │ + 7 │ use rowan::ast::AstNode; + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:7:10 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:7:12 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:7:15 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:7:17 ] + │ + 7 │ use rowan::ast::AstNode; + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:7:24 ] + │ + 7 │ use rowan::ast::AstNode; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:9:1 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:9:5 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:9:10 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +───╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:9:12 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:9:13 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:9:23 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found Comma +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:9:25 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:9:35 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found Comma +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:9:37 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +───╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:9:48 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:9:49 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +───╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:12:1 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:12:5 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:12:11 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:12:22 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:12:24 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:12:31 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:12:32 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:12:41 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:12:43 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:12:48 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:12:50 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:12:62 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:12:64 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:14:5 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:14:8 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:14:12 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:14:13 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:14:14 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:14:18 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:14:20 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:14:23 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:14:34 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:15:9 ] + │ + 15 │ self.syntax().kind() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:15:13 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:15:14 ] + │ + 15 │ self.syntax().kind() + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:15:20 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:15:21 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:15:22 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:15:23 ] + │ + 15 │ self.syntax().kind() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:15:27 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:15:28 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:16:5 ] + │ + 16 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:17:1 ] + │ + 17 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:20:1 ] + │ + 20 │ macro_rules! ast_node { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:20:12 ] + │ + 20 │ macro_rules! ast_node { + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:20:14 ] + │ + 20 │ macro_rules! ast_node { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:20:23 ] + │ + 20 │ macro_rules! ast_node { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:21:5 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Dollar + ╭─[ 0:21:6 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:21:7 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:21:11 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:21:12 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:21:17 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Dollar + ╭─[ 0:21:19 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:21:20 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:21:24 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:21:25 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:21:30 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:21:32 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:21:33 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:21:35 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Hash + ╭─[ 0:22:9 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Hash +────╯ + +Error: Expected top-level declaration, found LBracket + ╭─[ 0:22:10 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LBracket +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:22:11 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:22:17 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:22:18 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:22:23 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:22:25 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:22:30 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:22:32 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:22:41 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:22:43 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:22:45 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:22:47 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:22:51 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RBracket + ╭─[ 0:22:52 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RBracket +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:23:9 ] + │ + 23 │ pub struct $name { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:23:13 ] + │ + 23 │ pub struct $name { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dollar + ╭─[ 0:23:20 ] + │ + 23 │ pub struct $name { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:23:21 ] + │ + 23 │ pub struct $name { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:23:26 ] + │ + 23 │ pub struct $name { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:24:13 ] + │ + 24 │ syntax: SyntaxNode, + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:24:19 ] + │ + 24 │ syntax: SyntaxNode, + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:24:21 ] + │ + 24 │ syntax: SyntaxNode, + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:24:31 ] + │ + 24 │ syntax: SyntaxNode, + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:25:9 ] + │ + 25 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:27:9 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:27:14 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found For + ╭─[ 0:27:26 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ─┬─ + │ ╰─── Expected top-level declaration, found For +────╯ + +Error: Expected top-level declaration, found Dollar + ╭─[ 0:27:30 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:27:31 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:27:36 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:27:37 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:29:9 ] + │ + 29 │ impl AstNode for $name { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:29:14 ] + │ + 29 │ impl AstNode for $name { + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found For + ╭─[ 0:29:22 ] + │ + 29 │ impl AstNode for $name { + │ ─┬─ + │ ╰─── Expected top-level declaration, found For +────╯ + +Error: Expected top-level declaration, found Dollar + ╭─[ 0:29:26 ] + │ + 29 │ impl AstNode for $name { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:29:27 ] + │ + 29 │ impl AstNode for $name { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:29:32 ] + │ + 29 │ impl AstNode for $name { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:30:34 ] + │ + 30 │ type Language = crate::BamlLanguage; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:30:36 ] + │ + 30 │ type Language = crate::BamlLanguage; + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:30:48 ] + │ + 30 │ type Language = crate::BamlLanguage; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:13 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:16 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:32:24 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:25 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:32:29 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:32:31 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:32 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:32:36 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:38 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:47 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:50 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:32:55 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:57 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:32:65 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:32:66 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:68 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:32:72 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:32:74 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:32:77 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:32:82 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:33:17 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found EqualsEquals + ╭─[ 0:33:22 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:33:25 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:33:35 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Dollar + ╭─[ 0:33:37 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:33:38 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:33:42 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:33:43 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:33:47 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:33:48 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:34:13 ] + │ + 34 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:36:13 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:36:16 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:36:20 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:36:21 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:36:27 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:36:29 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:36:39 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:36:41 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:36:44 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:36:50 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:36:51 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:36:55 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:36:57 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found If + ╭─[ 0:37:17 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ─┬ + │ ╰── Expected top-level declaration, found If +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:37:20 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:37:24 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:37:26 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:37:34 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:37:35 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:37:41 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:37:42 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:37:46 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:37:47 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:37:48 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:37:50 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:38:21 ] + │ + 38 │ Some(Self { syntax }) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:38:25 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:38:26 ] + │ + 38 │ Some(Self { syntax }) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:38:31 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:38:33 ] + │ + 38 │ Some(Self { syntax }) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:38:40 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:38:41 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:39:17 ] + │ + 39 │ } else { + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Else + ╭─[ 0:39:19 ] + │ + 39 │ } else { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Else +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:39:24 ] + │ + 39 │ } else { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:40:21 ] + │ + 40 │ None + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:41:17 ] + │ + 41 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:42:13 ] + │ + 42 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:44:13 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:44:16 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:44:22 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:44:23 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:44:24 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:44:28 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:44:30 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:44:33 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:44:34 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:44:45 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:45:17 ] + │ + 45 │ &self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:45:18 ] + │ + 45 │ &self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:45:22 ] + │ + 45 │ &self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:45:23 ] + │ + 45 │ &self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:46:13 ] + │ + 46 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:47:9 ] + │ + 47 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:48:5 ] + │ + 48 │ }; + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:48:6 ] + │ + 48 │ }; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:49:1 ] + │ + 49 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:52:1 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:52:9 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:52:10 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:52:11 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:52:21 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:52:23 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:52:34 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:52:35 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:53:1 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:53:9 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:53:10 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:53:11 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:53:22 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:53:24 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:53:36 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:53:37 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:54:1 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:54:9 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:54:10 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:54:11 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:54:19 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:54:21 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:54:30 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:54:31 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:55:1 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:55:9 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:55:10 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:55:11 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:55:18 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:55:20 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:55:28 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:55:29 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:56:1 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:56:9 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:56:10 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:56:11 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:56:20 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:56:22 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:56:32 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:56:33 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:57:1 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:57:9 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:57:10 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:57:11 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:57:18 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:57:20 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:57:28 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:57:29 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:58:1 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:58:9 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:58:10 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:58:11 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:58:25 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:58:27 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:58:43 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:58:44 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:59:1 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:59:9 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:59:10 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:59:11 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:59:28 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:59:30 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ─────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:59:49 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:59:50 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:60:1 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:60:9 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:60:10 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:60:11 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:60:23 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:60:25 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:60:39 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:60:40 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:62:1 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:62:9 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:62:10 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:62:11 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:62:24 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:62:26 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:62:40 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:62:41 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:63:1 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:63:9 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:63:10 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:63:11 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:63:20 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:63:22 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:63:31 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:63:32 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:64:1 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:64:9 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:64:10 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:64:11 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:64:23 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:64:25 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:64:38 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:64:39 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:65:1 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:65:9 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:65:10 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:65:11 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:65:26 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:65:28 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:65:45 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:65:46 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:66:1 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:66:9 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:66:10 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:66:11 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:66:27 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:66:29 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ─────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:66:47 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:66:48 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:67:1 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:67:9 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:67:10 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:67:11 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:67:16 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:67:18 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:67:23 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:67:24 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:68:1 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:68:9 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:68:10 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:68:11 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:68:22 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:68:24 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:68:36 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:68:37 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:69:1 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:69:9 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:69:10 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:69:11 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:69:22 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:69:24 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:69:36 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:69:37 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:70:1 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:70:9 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:70:10 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:70:11 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:70:21 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:70:23 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:70:34 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:70:35 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:72:1 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:72:9 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:72:10 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:72:11 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:72:19 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:72:21 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:72:30 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:72:31 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:73:1 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:73:9 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:73:10 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:73:11 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:73:20 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:73:22 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:73:31 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:73:32 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:74:1 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:74:9 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:74:10 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:74:11 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:74:25 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:74:27 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:74:42 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:74:43 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:76:1 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:76:9 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:76:10 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:76:11 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:76:15 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:76:17 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:76:21 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:76:22 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:77:1 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:77:9 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:77:10 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:77:11 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:77:18 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:77:20 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:77:28 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:77:29 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:78:1 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:78:9 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:78:10 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:78:11 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:78:17 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:78:19 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:78:26 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:78:27 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:79:1 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:79:9 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:79:10 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:79:11 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:79:20 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:79:22 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:79:32 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:79:33 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:80:1 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:80:9 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:80:10 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:80:11 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:80:18 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:80:20 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:80:28 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:80:29 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:81:1 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:81:9 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:81:10 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:81:11 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:81:20 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:81:22 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:81:32 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:81:33 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:84:1 ] + │ + 84 │ impl SourceFile { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:84:6 ] + │ + 84 │ impl SourceFile { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:84:17 ] + │ + 84 │ impl SourceFile { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:5 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:9 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:12 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:86:17 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:86:18 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:19 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:86:23 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:86:25 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:28 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:33 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:86:41 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:42 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:86:47 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:86:49 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:86:53 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:86:55 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:87:9 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:87:13 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:87:14 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:87:20 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:87:21 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:87:29 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:87:30 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:87:31 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:87:32 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:87:42 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:87:43 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:87:47 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:87:49 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:87:53 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:88:5 ] + │ + 88 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:89:1 ] + │ + 89 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:91:1 ] + │ + 91 │ impl FunctionDef { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:91:6 ] + │ + 91 │ impl FunctionDef { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:91:18 ] + │ + 91 │ impl FunctionDef { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:93:5 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:93:9 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:93:12 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:93:16 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:93:17 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:93:18 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:93:22 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:93:24 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:93:27 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:93:33 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:93:34 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:93:45 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:93:47 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:94:9 ] + │ + 94 │ self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:94:13 ] + │ + 94 │ self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:94:14 ] + │ + 94 │ self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:95:13 ] + │ + 95 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:95:14 ] + │ + 95 │ .children_with_tokens() + │ ──────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:95:34 ] + │ + 95 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:95:35 ] + │ + 95 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:96:13 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:96:14 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:96:24 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:96:25 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:96:30 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:96:32 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:96:43 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:96:45 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:96:55 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:97:13 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:97:14 ] + │ + 97 │ .filter(|token| { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:97:20 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:97:21 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:97:22 ] + │ + 97 │ .filter(|token| { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:97:27 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:97:29 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:17 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:98:22 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:23 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:98:27 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:98:28 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found EqualsEquals + ╭─[ 0:98:30 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:33 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:98:43 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:45 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found AndAnd + ╭─[ 0:98:50 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found AndAnd +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:53 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:98:58 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:59 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:98:65 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:98:66 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found EqualsEquals + ╭─[ 0:98:68 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:71 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:98:75 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:76 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:98:80 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:81 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:98:87 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:98:88 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:98:93 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:98:94 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:98:95 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:99:13 ] + │ + 99 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:99:14 ] + │ + 99 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:100:13 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:100:14 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:100:17 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found IntegerLiteral + ╭─[ 0:100:18 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found IntegerLiteral +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:100:19 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:101:5 ] + │ + 101 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:104:5 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:104:9 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:104:12 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:104:22 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:104:23 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:104:24 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:104:28 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:104:30 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:104:33 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:104:39 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:104:40 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:104:53 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:104:55 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:105:9 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:105:13 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:105:14 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:105:20 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:105:21 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:105:29 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:105:30 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:105:31 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:105:32 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:105:40 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:105:41 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:105:54 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:105:56 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:105:60 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:106:5 ] + │ + 106 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:109:5 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:109:9 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:109:12 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:109:23 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:109:24 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:109:25 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:109:29 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:109:31 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:109:34 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:109:40 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:109:41 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:109:49 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:109:51 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:110:9 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:110:13 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:110:14 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:110:20 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:110:21 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:110:29 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:110:30 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:110:31 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:110:32 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:110:40 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:110:41 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:110:49 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:110:51 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:110:55 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:111:5 ] + │ + 111 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:114:5 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:114:9 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:114:12 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:114:16 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:114:17 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:114:18 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:114:22 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:114:24 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:114:27 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:114:33 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:114:34 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:114:46 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:114:48 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:115:9 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:115:13 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:115:14 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:115:20 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:115:21 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:115:29 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:115:30 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:115:31 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:115:32 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:115:40 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:115:41 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:115:53 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:115:55 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:115:59 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:116:5 ] + │ + 116 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:119:5 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:119:9 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:119:12 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:119:20 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:119:21 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:119:22 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:119:26 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:119:28 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:119:31 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:119:37 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:119:38 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:119:53 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:119:55 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:120:9 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:120:13 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:120:14 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:120:20 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:120:21 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:120:29 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:120:30 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:120:31 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:120:32 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:120:40 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:120:41 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:120:56 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:120:58 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:120:62 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:121:5 ] + │ + 121 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:124:5 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:124:9 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:124:12 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:124:21 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:124:22 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:124:23 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:124:27 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:124:29 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:124:32 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:124:38 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:124:39 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:124:55 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:124:57 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:125:9 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:125:13 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:125:14 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:125:20 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:125:21 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:125:29 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:125:30 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:125:31 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:125:32 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:125:40 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:125:41 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:125:57 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:125:59 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:125:63 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:126:5 ] + │ + 126 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:129:5 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:129:9 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:129:12 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:129:27 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:129:28 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:129:29 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:129:33 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:129:35 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:129:38 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:129:43 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:130:9 ] + │ + 130 │ self.llm_body().is_some() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:130:13 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:130:14 ] + │ + 130 │ self.llm_body().is_some() + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:130:22 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:130:23 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:130:24 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:130:25 ] + │ + 130 │ self.llm_body().is_some() + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:130:32 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:130:33 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:131:5 ] + │ + 131 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:134:5 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:134:9 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:134:12 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:134:28 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:134:29 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:134:30 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:134:34 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:134:36 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:134:39 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:134:44 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:135:9 ] + │ + 135 │ self.expr_body().is_some() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:135:13 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:135:14 ] + │ + 135 │ self.expr_body().is_some() + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:135:23 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:135:24 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:135:25 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:135:26 ] + │ + 135 │ self.expr_body().is_some() + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:135:33 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:135:34 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:136:5 ] + │ + 136 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:137:1 ] + │ + 137 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:139:1 ] + │ + 139 │ impl ParameterList { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:139:6 ] + │ + 139 │ impl ParameterList { + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:139:20 ] + │ + 139 │ impl ParameterList { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:5 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:9 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:12 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:141:18 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:141:19 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:20 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:141:24 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:141:26 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:29 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:34 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:141:42 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:43 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:141:48 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:141:50 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:141:59 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:141:61 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:142:9 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:142:13 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:142:14 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:142:20 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:142:21 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:142:29 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:142:30 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:142:31 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:142:32 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:142:42 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:142:43 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:142:52 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:142:54 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:142:58 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:143:5 ] + │ + 143 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:144:1 ] + │ + 144 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:146:1 ] + │ + 146 │ impl ClassDef { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:146:6 ] + │ + 146 │ impl ClassDef { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:146:15 ] + │ + 146 │ impl ClassDef { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:148:5 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:148:9 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:148:12 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:148:16 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:148:17 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:148:18 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:148:22 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:148:24 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:148:27 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:148:33 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:148:34 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:148:45 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:148:47 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:149:9 ] + │ + 149 │ self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:149:13 ] + │ + 149 │ self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:149:14 ] + │ + 149 │ self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:150:13 ] + │ + 150 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:150:14 ] + │ + 150 │ .children_with_tokens() + │ ──────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:150:34 ] + │ + 150 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:150:35 ] + │ + 150 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:151:13 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:151:14 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:151:24 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:151:25 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:151:30 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:151:32 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:151:43 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:151:45 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:151:55 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:152:13 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:152:14 ] + │ + 152 │ .filter(|token| { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:152:20 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:152:21 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:152:22 ] + │ + 152 │ .filter(|token| { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:152:27 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:152:29 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:17 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:153:22 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:23 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:153:27 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:153:28 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found EqualsEquals + ╭─[ 0:153:30 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:33 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:153:43 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:45 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found AndAnd + ╭─[ 0:153:50 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found AndAnd +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:53 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:153:58 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:59 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:153:65 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:153:66 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found EqualsEquals + ╭─[ 0:153:68 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:71 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:153:75 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:76 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:153:80 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:81 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:153:87 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:153:88 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:153:93 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:153:94 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:153:95 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:154:13 ] + │ + 154 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:154:14 ] + │ + 154 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:155:13 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:155:14 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:155:17 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found IntegerLiteral + ╭─[ 0:155:18 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found IntegerLiteral +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:155:19 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:156:5 ] + │ + 156 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:5 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:9 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:12 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:159:18 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:159:19 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:20 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:159:24 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:159:26 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:29 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:34 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:159:42 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:43 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:159:48 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:159:50 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:159:55 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:159:57 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:160:9 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:160:13 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:160:14 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:160:20 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:160:21 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:160:29 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:160:30 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:160:31 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:160:32 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:160:42 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:160:43 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:160:48 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:160:50 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:160:54 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:161:5 ] + │ + 161 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:5 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:9 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:12 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:164:28 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:164:29 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:30 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:164:34 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:164:36 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:39 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:44 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:164:52 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:53 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:164:58 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:164:60 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:164:74 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:164:76 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:165:9 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:165:13 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:165:14 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:165:20 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:165:21 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:165:29 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:165:30 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:165:31 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:165:32 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:165:42 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:165:43 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:165:57 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:165:59 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:165:63 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:166:5 ] + │ + 166 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:167:1 ] + │ + 167 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:169:1 ] + │ + 169 │ impl Field { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:169:6 ] + │ + 169 │ impl Field { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:169:12 ] + │ + 169 │ impl Field { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:171:5 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:171:9 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:171:12 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:171:16 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:171:17 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:171:18 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:171:22 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:171:24 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:171:27 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:171:33 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:171:34 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:171:45 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:171:47 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:172:9 ] + │ + 172 │ self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:172:13 ] + │ + 172 │ self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:172:14 ] + │ + 172 │ self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:173:13 ] + │ + 173 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:173:14 ] + │ + 173 │ .children_with_tokens() + │ ──────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:173:34 ] + │ + 173 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:173:35 ] + │ + 173 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:174:13 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:174:14 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:174:24 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:174:25 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:174:30 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:174:32 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:174:43 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:174:45 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:174:55 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:175:13 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:175:14 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:175:18 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:175:19 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:175:20 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:175:25 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:175:27 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:175:32 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:175:33 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:175:37 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:175:38 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found EqualsEquals + ╭─[ 0:175:40 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:175:43 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:175:53 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:175:55 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:175:59 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:176:5 ] + │ + 176 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:179:5 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:179:9 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:179:12 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:179:14 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:179:15 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:179:16 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:179:20 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:179:22 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:179:25 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:179:31 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:179:32 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:179:40 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:179:42 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:180:9 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:180:13 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:180:14 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:180:20 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:180:21 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:180:29 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:180:30 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:180:31 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:180:32 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:180:40 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:180:41 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:180:49 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:180:51 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:180:55 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:181:5 ] + │ + 181 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:5 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:9 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:12 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:184:22 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:184:23 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:24 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:184:28 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:184:30 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:33 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:38 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:184:46 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:47 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:184:52 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:184:54 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:184:63 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:184:65 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:185:9 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:185:13 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:185:14 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:185:20 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:185:21 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:185:29 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:185:30 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:185:31 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:185:32 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:185:42 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:185:43 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:185:52 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:185:54 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:185:58 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:186:5 ] + │ + 186 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:187:1 ] + │ + 187 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Hash + ╭─[ 0:190:1 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Hash +─────╯ + +Error: Expected top-level declaration, found LBracket + ╭─[ 0:190:2 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LBracket +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:190:3 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:190:9 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:190:10 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:190:15 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:190:17 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:190:22 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:190:24 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:190:33 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:190:35 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:190:37 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:190:39 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:190:43 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBracket + ╭─[ 0:190:44 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RBracket +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:191:1 ] + │ + 191 │ pub enum Item { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:192:13 ] + │ + 192 │ Function(FunctionDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:192:25 ] + │ + 192 │ Function(FunctionDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:192:26 ] + │ + 192 │ Function(FunctionDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:193:10 ] + │ + 193 │ Class(ClassDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:193:19 ] + │ + 193 │ Class(ClassDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:193:20 ] + │ + 193 │ Class(ClassDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:194:9 ] + │ + 194 │ Enum(EnumDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:194:17 ] + │ + 194 │ Enum(EnumDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:194:18 ] + │ + 194 │ Enum(EnumDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:195:11 ] + │ + 195 │ Client(ClientDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:195:21 ] + │ + 195 │ Client(ClientDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:195:22 ] + │ + 195 │ Client(ClientDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:196:9 ] + │ + 196 │ Test(TestDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:196:17 ] + │ + 196 │ Test(TestDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:196:18 ] + │ + 196 │ Test(TestDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:197:16 ] + │ + 197 │ RetryPolicy(RetryPolicyDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:197:31 ] + │ + 197 │ RetryPolicy(RetryPolicyDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:197:32 ] + │ + 197 │ RetryPolicy(RetryPolicyDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:198:19 ] + │ + 198 │ TemplateString(TemplateStringDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:198:37 ] + │ + 198 │ TemplateString(TemplateStringDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:198:38 ] + │ + 198 │ TemplateString(TemplateStringDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected Unexpected token in enum body, found LParen + ╭─[ 0:199:14 ] + │ + 199 │ TypeAlias(TypeAliasDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + +Error: Expected Unexpected token in enum body, found RParen + ╭─[ 0:199:27 ] + │ + 199 │ TypeAlias(TypeAliasDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + +Error: Expected Unexpected token in enum body, found Comma + ╭─[ 0:199:28 ] + │ + 199 │ TypeAlias(TypeAliasDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:202:1 ] + │ + 202 │ impl AstNode for Item { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:202:6 ] + │ + 202 │ impl AstNode for Item { + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found For + ╭─[ 0:202:14 ] + │ + 202 │ impl AstNode for Item { + │ ─┬─ + │ ╰─── Expected top-level declaration, found For +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:202:18 ] + │ + 202 │ impl AstNode for Item { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:202:23 ] + │ + 202 │ impl AstNode for Item { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:203:26 ] + │ + 203 │ type Language = crate::BamlLanguage; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:203:28 ] + │ + 203 │ type Language = crate::BamlLanguage; + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Semicolon + ╭─[ 0:203:40 ] + │ + 203 │ type Language = crate::BamlLanguage; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:5 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:8 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:205:16 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:17 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:205:21 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:205:23 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:24 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:205:28 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:30 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:39 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:42 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:205:47 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:49 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:205:57 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:205:58 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:60 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:205:64 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:205:66 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:205:69 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:205:74 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:206:9 ] + │ + 206 │ matches!( + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Not + ╭─[ 0:206:16 ] + │ + 206 │ matches!( + │ ┬ + │ ╰── Expected top-level declaration, found Not +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:206:17 ] + │ + 206 │ matches!( + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:207:13 ] + │ + 207 │ kind, + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:207:17 ] + │ + 207 │ kind, + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:208:13 ] + │ + 208 │ SyntaxKind::FUNCTION_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:208:23 ] + │ + 208 │ SyntaxKind::FUNCTION_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:208:25 ] + │ + 208 │ SyntaxKind::FUNCTION_DEF + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:209:17 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:209:19 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:209:29 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:209:31 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:210:17 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:210:19 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:210:29 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:210:31 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:211:17 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:211:19 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:211:29 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:211:31 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:212:17 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:212:19 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:212:29 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:212:31 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:213:17 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:213:19 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:213:29 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:213:31 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:214:17 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:214:19 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:214:29 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:214:31 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ─────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Pipe + ╭─[ 0:215:17 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:215:19 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:215:29 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:215:31 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:216:9 ] + │ + 216 │ ) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:217:5 ] + │ + 217 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:219:5 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:219:8 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:219:12 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:219:13 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Colon + ╭─[ 0:219:19 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:219:21 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:219:31 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:219:33 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:219:36 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Less + ╭─[ 0:219:42 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:219:43 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:219:47 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:219:49 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:220:9 ] + │ + 220 │ match syntax.kind() { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:220:15 ] + │ + 220 │ match syntax.kind() { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:220:21 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:220:22 ] + │ + 220 │ match syntax.kind() { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:220:26 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:220:27 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:220:29 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:221:13 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:221:23 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:221:25 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:221:38 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:221:39 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:221:41 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:221:45 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:221:46 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:221:50 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:221:52 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:221:60 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:221:61 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:221:73 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:221:75 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:221:82 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:221:83 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:221:84 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:221:85 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:222:13 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:222:23 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:222:25 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:222:35 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:222:36 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:222:38 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:222:42 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:222:43 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:222:47 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:222:49 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:222:54 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:222:55 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:222:64 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:222:66 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:222:73 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:222:74 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:222:75 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:222:76 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:223:13 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:223:23 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:223:25 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:223:34 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:223:35 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:223:37 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:223:41 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:223:42 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:223:46 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:223:48 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:223:52 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:223:53 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:223:61 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:223:63 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:223:70 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:223:71 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:223:72 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:223:73 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:224:13 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:224:23 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:224:25 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:224:36 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:224:37 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:224:39 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:224:43 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:224:44 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:224:48 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:224:50 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:224:56 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:224:57 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:224:67 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:224:69 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:224:76 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:224:77 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:224:78 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:224:79 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:225:13 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:225:23 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:225:25 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:225:34 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:225:35 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:225:37 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:225:41 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:225:42 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:225:46 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:225:48 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:225:52 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:225:53 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:225:61 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:225:63 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:225:70 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:225:71 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:225:72 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:225:73 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:226:13 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:226:23 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:226:25 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:226:42 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:226:43 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:226:45 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:226:49 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:226:50 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:226:54 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:226:56 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:226:67 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:226:68 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:226:83 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:226:85 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:226:92 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:226:93 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:226:94 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:226:95 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:227:13 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:227:23 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:227:25 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ─────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:227:45 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:227:46 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:227:48 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:228:17 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:228:21 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:228:22 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:228:26 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:228:28 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:228:42 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:228:43 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:228:61 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:228:63 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:228:70 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:228:71 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:228:72 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:229:13 ] + │ + 229 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:230:13 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:230:23 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:230:25 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:230:40 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:230:41 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:230:43 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:230:47 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:230:48 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:230:52 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:230:54 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:230:63 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:230:64 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:230:77 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:230:79 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:230:86 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:230:87 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:230:88 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:230:89 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:231:13 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:231:15 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:231:16 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:231:18 ] + │ + 231 │ _ => None, + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:231:22 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:232:9 ] + │ + 232 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:233:5 ] + │ + 233 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:235:5 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:235:8 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:235:14 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:235:15 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:235:16 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:235:20 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:235:22 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + +Error: Expected top-level declaration, found And + ╭─[ 0:235:25 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:235:26 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:235:37 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:236:9 ] + │ + 236 │ match self { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:236:15 ] + │ + 236 │ match self { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:236:20 ] + │ + 236 │ match self { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:237:13 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:237:17 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:237:19 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:237:27 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:237:28 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:237:30 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:237:32 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:237:33 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:237:35 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:237:37 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:237:38 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:237:44 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:237:45 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:237:46 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:238:13 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:238:17 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:238:19 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:238:24 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:238:25 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:238:27 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:238:29 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:238:30 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:238:32 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:238:34 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:238:35 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:238:41 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:238:42 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:238:43 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:239:13 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:239:17 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:239:19 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:239:23 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:239:24 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:239:26 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:239:28 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:239:29 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:239:31 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:239:33 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:239:34 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:239:40 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:239:41 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:239:42 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:240:13 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:240:17 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:240:19 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:240:25 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:240:26 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:240:28 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:240:30 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:240:31 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:240:33 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:240:35 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:240:36 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:240:42 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:240:43 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:240:44 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:241:13 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:241:17 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:241:19 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:241:23 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:241:24 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:241:26 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:241:28 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:241:29 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:241:31 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:241:33 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:241:34 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:241:40 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:241:41 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:241:42 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:242:13 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:242:17 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:242:19 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:242:30 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:242:31 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:242:33 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:242:35 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:242:36 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:242:38 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:242:40 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:242:41 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:242:47 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:242:48 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:242:49 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:243:13 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:243:17 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:243:19 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:243:33 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:243:34 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:243:36 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:243:38 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:243:39 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:243:41 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:243:43 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:243:44 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:243:50 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:243:51 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:243:52 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:244:13 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found DoubleColon + ╭─[ 0:244:17 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:244:19 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:244:28 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:244:29 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:244:31 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Equals + ╭─[ 0:244:33 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + +Error: Expected top-level declaration, found Greater + ╭─[ 0:244:34 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:244:36 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found Dot + ╭─[ 0:244:38 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:244:39 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + +Error: Expected top-level declaration, found LParen + ╭─[ 0:244:45 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:244:46 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + +Error: Expected top-level declaration, found Comma + ╭─[ 0:244:47 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:245:9 ] + │ + 245 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:246:5 ] + │ + 246 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:247:1 ] + │ + 247 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap index ac41b0426b..cfd02980c9 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__02_parser__very_invalid.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -17,12 +17,12 @@ SOURCE_FILE BLOCK_EXPR L_BRACE "{" LET_STMT " - let x = ¿" + let x = ¿;" KW_LET "let" WORD "x" EQUALS "=" ERROR_TOKEN "¿" - SEMICOLON ";" + SEMICOLON ";" WHILE_STMT KW_WHILE "while" ERROR_TOKEN "\" @@ -37,6 +37,18 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression - Expected Expected expression, found Expected expression +Error: Expected expression, found Error + ╭─[ 0:6:11 ] + │ + 6 │ let x = ¿; + │ ─┬ + │ ╰── Expected expression, found Error +───╯ + +Error: Expected expression, found Error + ╭─[ 0:8:10 ] + │ + 8 │ while \ { + │ ┬ + │ ╰── Expected expression, found Error +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap index 67f71edb17..e9d941e04c 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_stress/baml_tests__parser_stress__05_diagnostics.snap @@ -3,1406 +3,11218 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === - [parse] Expected Expected Greater, found GreaterGreater, found Expected Greater, found GreaterGreater - [parse] Expected Expected Greater, found GreaterGreater, found Expected Greater, found GreaterGreater - [parse] Expected Expected Greater, found GreaterGreater, found Expected Greater, found GreaterGreater - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Unexpected token in enum body, found Unexpected token in enum body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression - [parse] Expected Expected expression, found Expected expression + [parse] Error: Expected Greater, found GreaterGreater + ╭─[ 1:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected Greater, found GreaterGreater +────╯ + + [parse] Error: Expected Greater, found GreaterGreater + ╭─[ 1:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected Greater, found GreaterGreater +────╯ + + [parse] Error: Expected Greater, found GreaterGreater + ╭─[ 1:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected Greater, found GreaterGreater +────╯ + + [parse] Error: Expected function body, found GreaterGreater + ╭─[ 1:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected function body, found GreaterGreater +────╯ + + [parse] Error: Expected top-level declaration, found GreaterGreater + ╭─[ 1:28:69 ] + │ + 28 │ function ComplexType() -> map>> { + │ ─┬ + │ ╰── Expected top-level declaration, found GreaterGreater +────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 1:28:71 ] + │ + 28 │ function ComplexType() -> map>> { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 1:28:73 ] + │ + 28 │ function ComplexType() -> map>> { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Return + ╭─[ 1:30:3 ] + │ + 30 │ return {} + │ ───┬── + │ ╰──── Expected top-level declaration, found Return +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 1:30:10 ] + │ + 30 │ return {} + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 1:30:11 ] + │ + 30 │ return {} + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 1:31:1 ] + │ + 31 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:7:1 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:7:5 ] + │ + 7 │ use rowan::ast::AstNode; + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:7:10 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:7:12 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:7:15 ] + │ + 7 │ use rowan::ast::AstNode; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:7:17 ] + │ + 7 │ use rowan::ast::AstNode; + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:7:24 ] + │ + 7 │ use rowan::ast::AstNode; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:9:1 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:9:5 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:9:10 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +───╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:9:12 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:9:13 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:9:23 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found Comma +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:9:25 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:9:35 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found Comma +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:9:37 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +───╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:9:48 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:9:49 ] + │ + 9 │ use crate::{SyntaxKind, SyntaxNode, SyntaxToken}; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +───╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:12:1 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:12:5 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:12:11 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:12:22 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:12:24 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:12:31 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:12:32 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:12:41 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:12:43 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:12:48 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:12:50 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:12:62 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:12:64 ] + │ + 12 │ pub trait BamlAstNode: AstNode { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:14:5 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:14:8 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:14:12 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:14:13 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:14:14 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:14:18 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:14:20 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:14:23 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:14:34 ] + │ + 14 │ fn kind(&self) -> SyntaxKind { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:15:9 ] + │ + 15 │ self.syntax().kind() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:15:13 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:15:14 ] + │ + 15 │ self.syntax().kind() + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:15:20 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:15:21 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:15:22 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:15:23 ] + │ + 15 │ self.syntax().kind() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:15:27 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:15:28 ] + │ + 15 │ self.syntax().kind() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:16:5 ] + │ + 16 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:17:1 ] + │ + 17 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:20:1 ] + │ + 20 │ macro_rules! ast_node { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:20:12 ] + │ + 20 │ macro_rules! ast_node { + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:20:14 ] + │ + 20 │ macro_rules! ast_node { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:20:23 ] + │ + 20 │ macro_rules! ast_node { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:21:5 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Dollar + ╭─[ 3:21:6 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:21:7 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:21:11 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:21:12 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:21:17 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Dollar + ╭─[ 3:21:19 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:21:20 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:21:24 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:21:25 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:21:30 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:21:32 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:21:33 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:21:35 ] + │ + 21 │ ($name:ident, $kind:ident) => { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Hash + ╭─[ 3:22:9 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Hash +────╯ + + [parse] Error: Expected top-level declaration, found LBracket + ╭─[ 3:22:10 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LBracket +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:22:11 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:22:17 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:22:18 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:22:23 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:22:25 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:22:30 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:22:32 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:22:41 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:22:43 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:22:45 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:22:47 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:22:51 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RBracket + ╭─[ 3:22:52 ] + │ + 22 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RBracket +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:23:9 ] + │ + 23 │ pub struct $name { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:23:13 ] + │ + 23 │ pub struct $name { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dollar + ╭─[ 3:23:20 ] + │ + 23 │ pub struct $name { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:23:21 ] + │ + 23 │ pub struct $name { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:23:26 ] + │ + 23 │ pub struct $name { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:24:13 ] + │ + 24 │ syntax: SyntaxNode, + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:24:19 ] + │ + 24 │ syntax: SyntaxNode, + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:24:21 ] + │ + 24 │ syntax: SyntaxNode, + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:24:31 ] + │ + 24 │ syntax: SyntaxNode, + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:25:9 ] + │ + 25 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:27:9 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:27:14 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found For + ╭─[ 3:27:26 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ─┬─ + │ ╰─── Expected top-level declaration, found For +────╯ + + [parse] Error: Expected top-level declaration, found Dollar + ╭─[ 3:27:30 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:27:31 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:27:36 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:27:37 ] + │ + 27 │ impl BamlAstNode for $name {} + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:29:9 ] + │ + 29 │ impl AstNode for $name { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:29:14 ] + │ + 29 │ impl AstNode for $name { + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found For + ╭─[ 3:29:22 ] + │ + 29 │ impl AstNode for $name { + │ ─┬─ + │ ╰─── Expected top-level declaration, found For +────╯ + + [parse] Error: Expected top-level declaration, found Dollar + ╭─[ 3:29:26 ] + │ + 29 │ impl AstNode for $name { + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:29:27 ] + │ + 29 │ impl AstNode for $name { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:29:32 ] + │ + 29 │ impl AstNode for $name { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:30:34 ] + │ + 30 │ type Language = crate::BamlLanguage; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:30:36 ] + │ + 30 │ type Language = crate::BamlLanguage; + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:30:48 ] + │ + 30 │ type Language = crate::BamlLanguage; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:13 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:16 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:32:24 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:25 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:32:29 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:32:31 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:32 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:32:36 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:38 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:47 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:50 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:32:55 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:57 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:32:65 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:32:66 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:68 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:32:72 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:32:74 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:32:77 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:32:82 ] + │ + 32 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:33:17 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found EqualsEquals + ╭─[ 3:33:22 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:33:25 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:33:35 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Dollar + ╭─[ 3:33:37 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found Dollar +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:33:38 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:33:42 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:33:43 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:33:47 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:33:48 ] + │ + 33 │ kind == SyntaxKind::$kind.into() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:34:13 ] + │ + 34 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:36:13 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:36:16 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:36:20 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:36:21 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:36:27 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:36:29 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:36:39 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:36:41 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:36:44 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:36:50 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:36:51 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:36:55 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:36:57 ] + │ + 36 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found If + ╭─[ 3:37:17 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ─┬ + │ ╰── Expected top-level declaration, found If +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:37:20 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:37:24 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:37:26 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:37:34 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:37:35 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:37:41 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:37:42 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:37:46 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:37:47 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:37:48 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:37:50 ] + │ + 37 │ if Self::can_cast(syntax.kind()) { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:38:21 ] + │ + 38 │ Some(Self { syntax }) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:38:25 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:38:26 ] + │ + 38 │ Some(Self { syntax }) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:38:31 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:38:33 ] + │ + 38 │ Some(Self { syntax }) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:38:40 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:38:41 ] + │ + 38 │ Some(Self { syntax }) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:39:17 ] + │ + 39 │ } else { + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Else + ╭─[ 3:39:19 ] + │ + 39 │ } else { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Else +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:39:24 ] + │ + 39 │ } else { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:40:21 ] + │ + 40 │ None + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:41:17 ] + │ + 41 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:42:13 ] + │ + 42 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:44:13 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:44:16 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:44:22 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:44:23 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:44:24 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:44:28 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:44:30 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:44:33 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:44:34 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:44:45 ] + │ + 44 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:45:17 ] + │ + 45 │ &self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:45:18 ] + │ + 45 │ &self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:45:22 ] + │ + 45 │ &self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:45:23 ] + │ + 45 │ &self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:46:13 ] + │ + 46 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:47:9 ] + │ + 47 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:48:5 ] + │ + 48 │ }; + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:48:6 ] + │ + 48 │ }; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:49:1 ] + │ + 49 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:52:1 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:52:9 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:52:10 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:52:11 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:52:21 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:52:23 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:52:34 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:52:35 ] + │ + 52 │ ast_node!(SourceFile, SOURCE_FILE); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:53:1 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:53:9 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:53:10 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:53:11 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:53:22 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:53:24 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:53:36 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:53:37 ] + │ + 53 │ ast_node!(FunctionDef, FUNCTION_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:54:1 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:54:9 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:54:10 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:54:11 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:54:19 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:54:21 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:54:30 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:54:31 ] + │ + 54 │ ast_node!(ClassDef, CLASS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:55:1 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:55:9 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:55:10 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:55:11 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:55:18 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:55:20 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:55:28 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:55:29 ] + │ + 55 │ ast_node!(EnumDef, ENUM_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:56:1 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:56:9 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:56:10 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:56:11 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:56:20 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:56:22 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:56:32 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:56:33 ] + │ + 56 │ ast_node!(ClientDef, CLIENT_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:57:1 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:57:9 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:57:10 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:57:11 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:57:18 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:57:20 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:57:28 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:57:29 ] + │ + 57 │ ast_node!(TestDef, TEST_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:58:1 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:58:9 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:58:10 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:58:11 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:58:25 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:58:27 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:58:43 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:58:44 ] + │ + 58 │ ast_node!(RetryPolicyDef, RETRY_POLICY_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:59:1 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:59:9 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:59:10 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:59:11 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:59:28 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:59:30 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ─────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:59:49 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:59:50 ] + │ + 59 │ ast_node!(TemplateStringDef, TEMPLATE_STRING_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:60:1 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:60:9 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:60:10 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:60:11 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:60:23 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:60:25 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:60:39 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:60:40 ] + │ + 60 │ ast_node!(TypeAliasDef, TYPE_ALIAS_DEF); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:62:1 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:62:9 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:62:10 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:62:11 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:62:24 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:62:26 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:62:40 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:62:41 ] + │ + 62 │ ast_node!(ParameterList, PARAMETER_LIST); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:63:1 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:63:9 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:63:10 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:63:11 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:63:20 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:63:22 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:63:31 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:63:32 ] + │ + 63 │ ast_node!(Parameter, PARAMETER); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:64:1 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:64:9 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:64:10 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:64:11 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:64:23 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:64:25 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:64:38 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:64:39 ] + │ + 64 │ ast_node!(FunctionBody, FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:65:1 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:65:9 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:65:10 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:65:11 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:65:26 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:65:28 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:65:45 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:65:46 ] + │ + 65 │ ast_node!(LlmFunctionBody, LLM_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:66:1 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:66:9 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:66:10 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:66:11 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:66:27 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:66:29 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ─────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:66:47 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:66:48 ] + │ + 66 │ ast_node!(ExprFunctionBody, EXPR_FUNCTION_BODY); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:67:1 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:67:9 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:67:10 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:67:11 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:67:16 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:67:18 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:67:23 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:67:24 ] + │ + 67 │ ast_node!(Field, FIELD); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:68:1 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:68:9 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:68:10 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:68:11 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:68:22 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:68:24 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:68:36 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:68:37 ] + │ + 68 │ ast_node!(EnumVariant, ENUM_VARIANT); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:69:1 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:69:9 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:69:10 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:69:11 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:69:22 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:69:24 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:69:36 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:69:37 ] + │ + 69 │ ast_node!(ConfigBlock, CONFIG_BLOCK); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:70:1 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:70:9 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:70:10 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:70:11 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:70:21 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:70:23 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:70:34 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:70:35 ] + │ + 70 │ ast_node!(ConfigItem, CONFIG_ITEM); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:72:1 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:72:9 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:72:10 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:72:11 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:72:19 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:72:21 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:72:30 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:72:31 ] + │ + 72 │ ast_node!(TypeExpr, TYPE_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:73:1 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:73:9 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:73:10 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:73:11 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:73:20 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:73:22 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:73:31 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:73:32 ] + │ + 73 │ ast_node!(Attribute, ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:74:1 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:74:9 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:74:10 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:74:11 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:74:25 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:74:27 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:74:42 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:74:43 ] + │ + 74 │ ast_node!(BlockAttribute, BLOCK_ATTRIBUTE); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:76:1 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:76:9 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:76:10 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:76:11 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:76:15 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:76:17 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:76:21 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:76:22 ] + │ + 76 │ ast_node!(Expr, EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:77:1 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:77:9 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:77:10 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:77:11 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:77:18 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:77:20 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:77:28 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:77:29 ] + │ + 77 │ ast_node!(LetStmt, LET_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:78:1 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:78:9 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:78:10 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:78:11 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:78:17 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:78:19 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:78:26 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:78:27 ] + │ + 78 │ ast_node!(IfExpr, IF_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:79:1 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:79:9 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:79:10 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:79:11 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:79:20 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:79:22 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:79:32 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:79:33 ] + │ + 79 │ ast_node!(WhileStmt, WHILE_STMT); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:80:1 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:80:9 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:80:10 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:80:11 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:80:18 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:80:20 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:80:28 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:80:29 ] + │ + 80 │ ast_node!(ForExpr, FOR_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:81:1 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:81:9 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Not +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:81:10 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:81:11 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:81:20 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Comma +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:81:22 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:81:32 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:81:33 ] + │ + 81 │ ast_node!(BlockExpr, BLOCK_EXPR); + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:84:1 ] + │ + 84 │ impl SourceFile { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:84:6 ] + │ + 84 │ impl SourceFile { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:84:17 ] + │ + 84 │ impl SourceFile { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:5 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:9 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:12 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:86:17 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:86:18 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:19 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:86:23 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:86:25 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:28 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:33 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:86:41 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:42 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:86:47 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:86:49 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:86:53 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:86:55 ] + │ + 86 │ pub fn items(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:87:9 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:87:13 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:87:14 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:87:20 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:87:21 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:87:29 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:87:30 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:87:31 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:87:32 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:87:42 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:87:43 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:87:47 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:87:49 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:87:53 ] + │ + 87 │ self.syntax.children().filter_map(Item::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:88:5 ] + │ + 88 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:89:1 ] + │ + 89 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:91:1 ] + │ + 91 │ impl FunctionDef { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:91:6 ] + │ + 91 │ impl FunctionDef { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:91:18 ] + │ + 91 │ impl FunctionDef { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:93:5 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:93:9 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:93:12 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:93:16 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:93:17 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:93:18 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:93:22 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:93:24 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:93:27 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:93:33 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:93:34 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:93:45 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:93:47 ] + │ + 93 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:94:9 ] + │ + 94 │ self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:94:13 ] + │ + 94 │ self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:94:14 ] + │ + 94 │ self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:95:13 ] + │ + 95 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:95:14 ] + │ + 95 │ .children_with_tokens() + │ ──────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:95:34 ] + │ + 95 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:95:35 ] + │ + 95 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:96:13 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:96:14 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:96:24 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:96:25 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:96:30 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:96:32 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:96:43 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:96:45 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:96:55 ] + │ + 96 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:97:13 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:97:14 ] + │ + 97 │ .filter(|token| { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:97:20 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:97:21 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:97:22 ] + │ + 97 │ .filter(|token| { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:97:27 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:97:29 ] + │ + 97 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:17 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:98:22 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:23 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:98:27 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:98:28 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found EqualsEquals + ╭─[ 3:98:30 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:33 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:98:43 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:45 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found AndAnd + ╭─[ 3:98:50 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found AndAnd +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:53 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:98:58 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:59 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:98:65 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:98:66 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found EqualsEquals + ╭─[ 3:98:68 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:71 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:98:75 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:76 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:98:80 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:81 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:98:87 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:98:88 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:98:93 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:98:94 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:98:95 ] + │ + 98 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:99:13 ] + │ + 99 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:99:14 ] + │ + 99 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:100:13 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:100:14 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:100:17 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found IntegerLiteral + ╭─[ 3:100:18 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found IntegerLiteral +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:100:19 ] + │ + 100 │ .nth(1) // Skip the "function" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:101:5 ] + │ + 101 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:104:5 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:104:9 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:104:12 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:104:22 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:104:23 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:104:24 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:104:28 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:104:30 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:104:33 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:104:39 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:104:40 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:104:53 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:104:55 ] + │ + 104 │ pub fn param_list(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:105:9 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:105:13 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:105:14 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:105:20 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:105:21 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:105:29 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:105:30 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:105:31 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:105:32 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:105:40 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:105:41 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:105:54 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:105:56 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:105:60 ] + │ + 105 │ self.syntax.children().find_map(ParameterList::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:106:5 ] + │ + 106 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:109:5 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:109:9 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:109:12 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:109:23 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:109:24 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:109:25 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:109:29 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:109:31 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:109:34 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:109:40 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:109:41 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:109:49 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:109:51 ] + │ + 109 │ pub fn return_type(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:110:9 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:110:13 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:110:14 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:110:20 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:110:21 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:110:29 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:110:30 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:110:31 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:110:32 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:110:40 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:110:41 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:110:49 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:110:51 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:110:55 ] + │ + 110 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:111:5 ] + │ + 111 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:114:5 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:114:9 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:114:12 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:114:16 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:114:17 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:114:18 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:114:22 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:114:24 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:114:27 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:114:33 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:114:34 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:114:46 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:114:48 ] + │ + 114 │ pub fn body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:115:9 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:115:13 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:115:14 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:115:20 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:115:21 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:115:29 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:115:30 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:115:31 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:115:32 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:115:40 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:115:41 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:115:53 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:115:55 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:115:59 ] + │ + 115 │ self.syntax.children().find_map(FunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:116:5 ] + │ + 116 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:119:5 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:119:9 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:119:12 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:119:20 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:119:21 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:119:22 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:119:26 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:119:28 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:119:31 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:119:37 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:119:38 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:119:53 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:119:55 ] + │ + 119 │ pub fn llm_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:120:9 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:120:13 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:120:14 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:120:20 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:120:21 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:120:29 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:120:30 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:120:31 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:120:32 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:120:40 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:120:41 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:120:56 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:120:58 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:120:62 ] + │ + 120 │ self.syntax.children().find_map(LlmFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:121:5 ] + │ + 121 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:124:5 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:124:9 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:124:12 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:124:21 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:124:22 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:124:23 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:124:27 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:124:29 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:124:32 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:124:38 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:124:39 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:124:55 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:124:57 ] + │ + 124 │ pub fn expr_body(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:125:9 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:125:13 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:125:14 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:125:20 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:125:21 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:125:29 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:125:30 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:125:31 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:125:32 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:125:40 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:125:41 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:125:57 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:125:59 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:125:63 ] + │ + 125 │ self.syntax.children().find_map(ExprFunctionBody::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:126:5 ] + │ + 126 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:129:5 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:129:9 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:129:12 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ───────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:129:27 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:129:28 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:129:29 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:129:33 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:129:35 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:129:38 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:129:43 ] + │ + 129 │ pub fn is_llm_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:130:9 ] + │ + 130 │ self.llm_body().is_some() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:130:13 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:130:14 ] + │ + 130 │ self.llm_body().is_some() + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:130:22 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:130:23 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:130:24 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:130:25 ] + │ + 130 │ self.llm_body().is_some() + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:130:32 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:130:33 ] + │ + 130 │ self.llm_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:131:5 ] + │ + 131 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:134:5 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:134:9 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:134:12 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:134:28 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:134:29 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:134:30 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:134:34 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:134:36 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:134:39 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:134:44 ] + │ + 134 │ pub fn is_expr_function(&self) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:135:9 ] + │ + 135 │ self.expr_body().is_some() + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:135:13 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:135:14 ] + │ + 135 │ self.expr_body().is_some() + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:135:23 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:135:24 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:135:25 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:135:26 ] + │ + 135 │ self.expr_body().is_some() + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:135:33 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:135:34 ] + │ + 135 │ self.expr_body().is_some() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:136:5 ] + │ + 136 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:137:1 ] + │ + 137 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:139:1 ] + │ + 139 │ impl ParameterList { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:139:6 ] + │ + 139 │ impl ParameterList { + │ ──────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:139:20 ] + │ + 139 │ impl ParameterList { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:5 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:9 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:12 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:141:18 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:141:19 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:20 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:141:24 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:141:26 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:29 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:34 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:141:42 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:43 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:141:48 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:141:50 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:141:59 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:141:61 ] + │ + 141 │ pub fn params(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:142:9 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:142:13 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:142:14 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:142:20 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:142:21 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:142:29 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:142:30 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:142:31 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:142:32 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:142:42 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:142:43 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:142:52 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:142:54 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:142:58 ] + │ + 142 │ self.syntax.children().filter_map(Parameter::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:143:5 ] + │ + 143 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:144:1 ] + │ + 144 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:146:1 ] + │ + 146 │ impl ClassDef { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:146:6 ] + │ + 146 │ impl ClassDef { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:146:15 ] + │ + 146 │ impl ClassDef { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:148:5 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:148:9 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:148:12 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:148:16 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:148:17 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:148:18 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:148:22 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:148:24 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:148:27 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:148:33 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:148:34 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:148:45 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:148:47 ] + │ + 148 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:149:9 ] + │ + 149 │ self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:149:13 ] + │ + 149 │ self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:149:14 ] + │ + 149 │ self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:150:13 ] + │ + 150 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:150:14 ] + │ + 150 │ .children_with_tokens() + │ ──────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:150:34 ] + │ + 150 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:150:35 ] + │ + 150 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:151:13 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:151:14 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:151:24 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:151:25 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:151:30 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:151:32 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:151:43 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:151:45 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:151:55 ] + │ + 151 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:152:13 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:152:14 ] + │ + 152 │ .filter(|token| { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:152:20 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:152:21 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:152:22 ] + │ + 152 │ .filter(|token| { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:152:27 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:152:29 ] + │ + 152 │ .filter(|token| { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:17 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:153:22 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:23 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:153:27 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:153:28 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found EqualsEquals + ╭─[ 3:153:30 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:33 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:153:43 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:45 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found AndAnd + ╭─[ 3:153:50 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found AndAnd +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:53 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:153:58 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:59 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:153:65 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:153:66 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found EqualsEquals + ╭─[ 3:153:68 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:71 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:153:75 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:76 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:153:80 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:81 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:153:87 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:153:88 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:153:93 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:153:94 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:153:95 ] + │ + 153 │ token.kind() == SyntaxKind::WORD && token.parent() == Some(self.syntax.clone()) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:154:13 ] + │ + 154 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:154:14 ] + │ + 154 │ }) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:155:13 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:155:14 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:155:17 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found IntegerLiteral + ╭─[ 3:155:18 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found IntegerLiteral +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:155:19 ] + │ + 155 │ .nth(1) // Skip the "class" keyword, get the second WORD + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:156:5 ] + │ + 156 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:5 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:9 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:12 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:159:18 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:159:19 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:20 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:159:24 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:159:26 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:29 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:34 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:159:42 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:43 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:159:48 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:159:50 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:159:55 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:159:57 ] + │ + 159 │ pub fn fields(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:160:9 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:160:13 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:160:14 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:160:20 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:160:21 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:160:29 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:160:30 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:160:31 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:160:32 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:160:42 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:160:43 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:160:48 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:160:50 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:160:54 ] + │ + 160 │ self.syntax.children().filter_map(Field::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:161:5 ] + │ + 161 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:5 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:9 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:12 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:164:28 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:164:29 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:30 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:164:34 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:164:36 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:39 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:44 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:164:52 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:53 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:164:58 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:164:60 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:164:74 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:164:76 ] + │ + 164 │ pub fn block_attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:165:9 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:165:13 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:165:14 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:165:20 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:165:21 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:165:29 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:165:30 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:165:31 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:165:32 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:165:42 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:165:43 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:165:57 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:165:59 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:165:63 ] + │ + 165 │ self.syntax.children().filter_map(BlockAttribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:166:5 ] + │ + 166 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:167:1 ] + │ + 167 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:169:1 ] + │ + 169 │ impl Field { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:169:6 ] + │ + 169 │ impl Field { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:169:12 ] + │ + 169 │ impl Field { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:171:5 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:171:9 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:171:12 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:171:16 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:171:17 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:171:18 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:171:22 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:171:24 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:171:27 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:171:33 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:171:34 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:171:45 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:171:47 ] + │ + 171 │ pub fn name(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:172:9 ] + │ + 172 │ self.syntax + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:172:13 ] + │ + 172 │ self.syntax + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:172:14 ] + │ + 172 │ self.syntax + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:173:13 ] + │ + 173 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:173:14 ] + │ + 173 │ .children_with_tokens() + │ ──────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:173:34 ] + │ + 173 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:173:35 ] + │ + 173 │ .children_with_tokens() + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:174:13 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:174:14 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:174:24 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:174:25 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:174:30 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:174:32 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:174:43 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:174:45 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:174:55 ] + │ + 174 │ .filter_map(rowan::NodeOrToken::into_token) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:175:13 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:175:14 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:175:18 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:175:19 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:175:20 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:175:25 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:175:27 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:175:32 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:175:33 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:175:37 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:175:38 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found EqualsEquals + ╭─[ 3:175:40 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ─┬ + │ ╰── Expected top-level declaration, found EqualsEquals +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:175:43 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:175:53 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:175:55 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:175:59 ] + │ + 175 │ .find(|token| token.kind() == SyntaxKind::WORD) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:176:5 ] + │ + 176 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:179:5 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:179:9 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:179:12 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:179:14 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:179:15 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:179:16 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:179:20 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:179:22 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:179:25 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:179:31 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:179:32 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:179:40 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:179:42 ] + │ + 179 │ pub fn ty(&self) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:180:9 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:180:13 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:180:14 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:180:20 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:180:21 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:180:29 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:180:30 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:180:31 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:180:32 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:180:40 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:180:41 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:180:49 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:180:51 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:180:55 ] + │ + 180 │ self.syntax.children().find_map(TypeExpr::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:181:5 ] + │ + 181 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:5 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:9 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:12 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:184:22 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:184:23 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:24 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:184:28 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:184:30 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:33 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:38 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:184:46 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:47 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:184:52 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:184:54 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:184:63 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:184:65 ] + │ + 184 │ pub fn attributes(&self) -> impl Iterator { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:185:9 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:185:13 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:185:14 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:185:20 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:185:21 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:185:29 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:185:30 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:185:31 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:185:32 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:185:42 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:185:43 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:185:52 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:185:54 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:185:58 ] + │ + 185 │ self.syntax.children().filter_map(Attribute::cast) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:186:5 ] + │ + 186 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:187:1 ] + │ + 187 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Hash + ╭─[ 3:190:1 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Hash +─────╯ + + [parse] Error: Expected top-level declaration, found LBracket + ╭─[ 3:190:2 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LBracket +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:190:3 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:190:9 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:190:10 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:190:15 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:190:17 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:190:22 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:190:24 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:190:33 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:190:35 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:190:37 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:190:39 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:190:43 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBracket + ╭─[ 3:190:44 ] + │ + 190 │ #[derive(Debug, Clone, PartialEq, Eq, Hash)] + │ ┬ + │ ╰── Expected top-level declaration, found RBracket +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:191:1 ] + │ + 191 │ pub enum Item { + │ ─┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:192:13 ] + │ + 192 │ Function(FunctionDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:192:25 ] + │ + 192 │ Function(FunctionDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:192:26 ] + │ + 192 │ Function(FunctionDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:193:10 ] + │ + 193 │ Class(ClassDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:193:19 ] + │ + 193 │ Class(ClassDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:193:20 ] + │ + 193 │ Class(ClassDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:194:9 ] + │ + 194 │ Enum(EnumDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:194:17 ] + │ + 194 │ Enum(EnumDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:194:18 ] + │ + 194 │ Enum(EnumDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:195:11 ] + │ + 195 │ Client(ClientDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:195:21 ] + │ + 195 │ Client(ClientDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:195:22 ] + │ + 195 │ Client(ClientDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:196:9 ] + │ + 196 │ Test(TestDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:196:17 ] + │ + 196 │ Test(TestDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:196:18 ] + │ + 196 │ Test(TestDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:197:16 ] + │ + 197 │ RetryPolicy(RetryPolicyDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:197:31 ] + │ + 197 │ RetryPolicy(RetryPolicyDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:197:32 ] + │ + 197 │ RetryPolicy(RetryPolicyDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:198:19 ] + │ + 198 │ TemplateString(TemplateStringDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:198:37 ] + │ + 198 │ TemplateString(TemplateStringDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:198:38 ] + │ + 198 │ TemplateString(TemplateStringDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found LParen + ╭─[ 3:199:14 ] + │ + 199 │ TypeAlias(TypeAliasDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found LParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found RParen + ╭─[ 3:199:27 ] + │ + 199 │ TypeAlias(TypeAliasDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found RParen +─────╯ + + [parse] Error: Expected Unexpected token in enum body, found Comma + ╭─[ 3:199:28 ] + │ + 199 │ TypeAlias(TypeAliasDef), + │ ┬ + │ ╰── Expected Unexpected token in enum body, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:202:1 ] + │ + 202 │ impl AstNode for Item { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:202:6 ] + │ + 202 │ impl AstNode for Item { + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found For + ╭─[ 3:202:14 ] + │ + 202 │ impl AstNode for Item { + │ ─┬─ + │ ╰─── Expected top-level declaration, found For +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:202:18 ] + │ + 202 │ impl AstNode for Item { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:202:23 ] + │ + 202 │ impl AstNode for Item { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:203:26 ] + │ + 203 │ type Language = crate::BamlLanguage; + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:203:28 ] + │ + 203 │ type Language = crate::BamlLanguage; + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Semicolon + ╭─[ 3:203:40 ] + │ + 203 │ type Language = crate::BamlLanguage; + │ ┬ + │ ╰── Expected top-level declaration, found Semicolon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:5 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:8 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:205:16 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:17 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:205:21 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:205:23 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:24 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:205:28 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:30 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:39 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:42 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:205:47 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:49 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:205:57 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:205:58 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:60 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:205:64 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:205:66 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:205:69 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:205:74 ] + │ + 205 │ fn can_cast(kind: ::Kind) -> bool { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:206:9 ] + │ + 206 │ matches!( + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Not + ╭─[ 3:206:16 ] + │ + 206 │ matches!( + │ ┬ + │ ╰── Expected top-level declaration, found Not +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:206:17 ] + │ + 206 │ matches!( + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:207:13 ] + │ + 207 │ kind, + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:207:17 ] + │ + 207 │ kind, + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:208:13 ] + │ + 208 │ SyntaxKind::FUNCTION_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:208:23 ] + │ + 208 │ SyntaxKind::FUNCTION_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:208:25 ] + │ + 208 │ SyntaxKind::FUNCTION_DEF + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:209:17 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:209:19 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:209:29 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:209:31 ] + │ + 209 │ | SyntaxKind::CLASS_DEF + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:210:17 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:210:19 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:210:29 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:210:31 ] + │ + 210 │ | SyntaxKind::ENUM_DEF + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:211:17 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:211:19 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:211:29 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:211:31 ] + │ + 211 │ | SyntaxKind::CLIENT_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:212:17 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:212:19 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:212:29 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:212:31 ] + │ + 212 │ | SyntaxKind::TEST_DEF + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:213:17 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:213:19 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:213:29 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:213:31 ] + │ + 213 │ | SyntaxKind::RETRY_POLICY_DEF + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:214:17 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:214:19 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:214:29 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:214:31 ] + │ + 214 │ | SyntaxKind::TEMPLATE_STRING_DEF + │ ─────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Pipe + ╭─[ 3:215:17 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ┬ + │ ╰── Expected top-level declaration, found Pipe +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:215:19 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:215:29 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:215:31 ] + │ + 215 │ | SyntaxKind::TYPE_ALIAS_DEF + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:216:9 ] + │ + 216 │ ) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:217:5 ] + │ + 217 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:219:5 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:219:8 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:219:12 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:219:13 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Colon + ╭─[ 3:219:19 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Colon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:219:21 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:219:31 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:219:33 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:219:36 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Less + ╭─[ 3:219:42 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Less +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:219:43 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:219:47 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:219:49 ] + │ + 219 │ fn cast(syntax: SyntaxNode) -> Option { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:220:9 ] + │ + 220 │ match syntax.kind() { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:220:15 ] + │ + 220 │ match syntax.kind() { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:220:21 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:220:22 ] + │ + 220 │ match syntax.kind() { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:220:26 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:220:27 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:220:29 ] + │ + 220 │ match syntax.kind() { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:221:13 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:221:23 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:221:25 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:221:38 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:221:39 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:221:41 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:221:45 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:221:46 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:221:50 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:221:52 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:221:60 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:221:61 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:221:73 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:221:75 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:221:82 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:221:83 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:221:84 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:221:85 ] + │ + 221 │ SyntaxKind::FUNCTION_DEF => Some(Item::Function(FunctionDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:222:13 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:222:23 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:222:25 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:222:35 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:222:36 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:222:38 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:222:42 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:222:43 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:222:47 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:222:49 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:222:54 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:222:55 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:222:64 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:222:66 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:222:73 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:222:74 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:222:75 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:222:76 ] + │ + 222 │ SyntaxKind::CLASS_DEF => Some(Item::Class(ClassDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:223:13 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:223:23 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:223:25 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:223:34 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:223:35 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:223:37 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:223:41 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:223:42 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:223:46 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:223:48 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:223:52 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:223:53 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:223:61 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:223:63 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:223:70 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:223:71 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:223:72 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:223:73 ] + │ + 223 │ SyntaxKind::ENUM_DEF => Some(Item::Enum(EnumDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:224:13 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:224:23 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:224:25 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:224:36 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:224:37 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:224:39 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:224:43 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:224:44 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:224:48 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:224:50 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:224:56 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:224:57 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:224:67 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:224:69 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:224:76 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:224:77 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:224:78 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:224:79 ] + │ + 224 │ SyntaxKind::CLIENT_DEF => Some(Item::Client(ClientDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:225:13 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:225:23 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:225:25 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:225:34 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:225:35 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:225:37 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:225:41 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:225:42 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:225:46 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:225:48 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:225:52 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:225:53 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ───┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:225:61 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:225:63 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:225:70 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:225:71 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:225:72 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:225:73 ] + │ + 225 │ SyntaxKind::TEST_DEF => Some(Item::Test(TestDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:226:13 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:226:23 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:226:25 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ────────┬─────── + │ ╰───────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:226:42 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:226:43 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:226:45 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:226:49 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:226:50 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:226:54 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:226:56 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:226:67 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:226:68 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:226:83 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:226:85 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:226:92 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:226:93 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:226:94 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:226:95 ] + │ + 226 │ SyntaxKind::RETRY_POLICY_DEF => Some(Item::RetryPolicy(RetryPolicyDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:227:13 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:227:23 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:227:25 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ─────────┬───────── + │ ╰─────────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:227:45 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:227:46 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:227:48 ] + │ + 227 │ SyntaxKind::TEMPLATE_STRING_DEF => { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:228:17 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:228:21 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:228:22 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:228:26 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:228:28 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:228:42 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:228:43 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ────────┬──────── + │ ╰────────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:228:61 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:228:63 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:228:70 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:228:71 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:228:72 ] + │ + 228 │ Some(Item::TemplateString(TemplateStringDef { syntax })) + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:229:13 ] + │ + 229 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:230:13 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:230:23 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:230:25 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:230:40 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:230:41 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:230:43 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:230:47 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:230:48 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:230:52 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:230:54 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:230:63 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:230:64 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ──────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:230:77 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:230:79 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:230:86 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:230:87 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:230:88 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:230:89 ] + │ + 230 │ SyntaxKind::TYPE_ALIAS_DEF => Some(Item::TypeAlias(TypeAliasDef { syntax })), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:231:13 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:231:15 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:231:16 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:231:18 ] + │ + 231 │ _ => None, + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:231:22 ] + │ + 231 │ _ => None, + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:232:9 ] + │ + 232 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:233:5 ] + │ + 233 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:235:5 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:235:8 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:235:14 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:235:15 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:235:16 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:235:20 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:235:22 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ─┬ + │ ╰── Expected top-level declaration, found Arrow +─────╯ + + [parse] Error: Expected top-level declaration, found And + ╭─[ 3:235:25 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found And +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:235:26 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ─────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:235:37 ] + │ + 235 │ fn syntax(&self) -> &SyntaxNode { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:236:9 ] + │ + 236 │ match self { + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:236:15 ] + │ + 236 │ match self { + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:236:20 ] + │ + 236 │ match self { + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:237:13 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:237:17 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:237:19 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:237:27 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:237:28 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:237:30 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:237:32 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:237:33 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:237:35 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:237:37 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:237:38 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:237:44 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:237:45 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:237:46 ] + │ + 237 │ Item::Function(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:238:13 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:238:17 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:238:19 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ──┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:238:24 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:238:25 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:238:27 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:238:29 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:238:30 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:238:32 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:238:34 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:238:35 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:238:41 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:238:42 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:238:43 ] + │ + 238 │ Item::Class(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:239:13 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:239:17 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:239:19 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:239:23 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:239:24 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:239:26 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:239:28 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:239:29 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:239:31 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:239:33 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:239:34 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:239:40 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:239:41 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:239:42 ] + │ + 239 │ Item::Enum(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:240:13 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:240:17 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:240:19 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:240:25 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:240:26 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:240:28 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:240:30 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:240:31 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:240:33 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:240:35 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:240:36 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:240:42 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:240:43 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:240:44 ] + │ + 240 │ Item::Client(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:241:13 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:241:17 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:241:19 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:241:23 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:241:24 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:241:26 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:241:28 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:241:29 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:241:31 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:241:33 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:241:34 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:241:40 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:241:41 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:241:42 ] + │ + 241 │ Item::Test(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:242:13 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:242:17 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:242:19 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─────┬───── + │ ╰─────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:242:30 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:242:31 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:242:33 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:242:35 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:242:36 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:242:38 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:242:40 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:242:41 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:242:47 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:242:48 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:242:49 ] + │ + 242 │ Item::RetryPolicy(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:243:13 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:243:17 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:243:19 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ───────┬────── + │ ╰──────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:243:33 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:243:34 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:243:36 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:243:38 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:243:39 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:243:41 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:243:43 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:243:44 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:243:50 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:243:51 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:243:52 ] + │ + 243 │ Item::TemplateString(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:244:13 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ──┬─ + │ ╰─── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found DoubleColon + ╭─[ 3:244:17 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found DoubleColon +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:244:19 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ────┬──── + │ ╰────── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:244:28 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:244:29 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:244:31 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Equals + ╭─[ 3:244:33 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Equals +─────╯ + + [parse] Error: Expected top-level declaration, found Greater + ╭─[ 3:244:34 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Greater +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:244:36 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ─┬ + │ ╰── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found Dot + ╭─[ 3:244:38 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Dot +─────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:244:39 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +─────╯ + + [parse] Error: Expected top-level declaration, found LParen + ╭─[ 3:244:45 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found LParen +─────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:244:46 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found RParen +─────╯ + + [parse] Error: Expected top-level declaration, found Comma + ╭─[ 3:244:47 ] + │ + 244 │ Item::TypeAlias(it) => it.syntax(), + │ ┬ + │ ╰── Expected top-level declaration, found Comma +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:245:9 ] + │ + 245 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:246:5 ] + │ + 246 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 3:247:1 ] + │ + 247 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +─────╯ + + [parse] Error: Expected expression, found Error + ╭─[ 4:6:11 ] + │ + 6 │ let x = ¿; + │ ─┬ + │ ╰── Expected expression, found Error +───╯ + + [parse] Error: Expected expression, found Error + ╭─[ 4:8:10 ] + │ + 8 │ while \ { + │ ┬ + │ ╰── Expected expression, found Error +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap index 5eea0edac0..7c6ad54ee2 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__nested_quotes.snap @@ -189,37 +189,274 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected attribute argument, found Expected attribute argument - Expected Expected RParen, found Error, found Expected RParen, found Error - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +Error: Expected attribute argument, found Error + ╭─[ 0:4:34 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected attribute argument, found Error +───╯ + +Error: Expected RParen, found Error + ╭─[ 0:4:34 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected RParen, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:4:34 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:4:44 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected type, found Error + ╭─[ 0:5:41 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected type, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:5:41 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:5:42 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected type, found Error + ╭─[ 0:5:48 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected type, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:5:48 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:5:49 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:5:58 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected Unexpected token in class body, found RParen + ╭─[ 0:5:59 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found RParen +───╯ + +Error: Expected RParen, found Word + ╭─[ 0:6:47 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ───┬── + │ ╰──── Expected RParen, found Word +───╯ + +Error: Expected type, found Error + ╭─[ 0:6:53 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected type, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:6:53 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:6:54 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:6:56 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected type, found Error + ╭─[ 0:6:64 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected type, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:6:64 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:6:65 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected Unexpected token in class body, found RParen + ╭─[ 0:6:66 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found RParen +───╯ + +Error: Expected RParen, found Word + ╭─[ 0:7:31 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ─┬─ + │ ╰─── Expected RParen, found Word +───╯ + +Error: Expected type, found Error + ╭─[ 0:7:34 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected type, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:7:34 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:35 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected Unexpected token in class body, found Colon + ╭─[ 0:7:36 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Colon +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:7:38 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:39 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected type, found Error + ╭─[ 0:7:45 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected type, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:7:45 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:46 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected top-level declaration, found Quote + ╭─[ 0:7:48 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected top-level declaration, found Quote +───╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:7:49 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected top-level declaration, found RParen +───╯ + +Error: Expected top-level declaration, found RBrace + ╭─[ 0:8:1 ] + │ + 8 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__simple_strings.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__simple_strings.snap index 56ee653c4e..33d0d1391e 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__simple_strings.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__simple_strings.snap @@ -1,6 +1,5 @@ --- source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs -assertion_line: 3981 expression: output --- === SYNTAX TREE === @@ -126,9 +125,50 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected RParen, found Word, found Expected RParen, found Word - Expected Expected type, found Expected type - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body - Expected Unexpected token in class body, found Unexpected token in class body +Error: Expected RParen, found Word + ╭─[ 0:7:41 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ──┬── + │ ╰──── Expected RParen, found Word +───╯ + +Error: Expected type, found Error + ╭─[ 0:7:46 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected type, found Error +───╯ + +Error: Expected Unexpected token in class body, found Error + ╭─[ 0:7:46 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:47 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:48 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + +Error: Expected Unexpected token in class body, found RParen + ╭─[ 0:7:49 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found RParen +───╯ diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap index 2d31027de3..a070f3b5b2 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__02_parser__unicode_strings.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs +source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs expression: output --- === SYNTAX TREE === @@ -235,13 +235,13 @@ SOURCE_FILE R_BRACE "}" FUNCTION_DEF KW_FUNCTION "function" + ERROR_TOKEN "处" + ERROR_TOKEN "理" + ERROR_TOKEN "文" + ERROR_TOKEN "本" PARAMETER_LIST + L_PAREN "(" PARAMETER - ERROR_TOKEN "处" - ERROR_TOKEN "理" - ERROR_TOKEN "文" - ERROR_TOKEN "本" - L_PAREN "(" ERROR_TOKEN "输" ERROR_TOKEN "入" WORD "string" @@ -279,47 +279,156 @@ SOURCE_FILE R_BRACE "}" === ERRORS === - Expected Expected function name, found Expected function name - Expected Expected LParen, found Error, found Expected LParen, found Error - Expected Expected parameter name, found Expected parameter name - Expected Expected type annotation, found Expected type annotation - Expected Expected RParen, found Error, found Expected RParen, found Error - Expected Expected return type (->), found Expected return type (->) - Expected Expected function body, found Expected function body - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected config block, found Expected config block - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration - Expected Expected top-level declaration, found Expected top-level declaration +Error: Expected function name, found Error + ╭─[ 0:29:1 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected function name, found Error +────╯ + +Error: Expected parameter name, found Error + ╭─[ 0:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected parameter name, found Error +────╯ + +Error: Expected type annotation, found Error + ╭─[ 0:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected type annotation, found Error +────╯ + +Error: Expected RParen, found Error + ╭─[ 0:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected RParen, found Error +────╯ + +Error: Expected return type (->), found Error + ╭─[ 0:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected return type (->), found Error +────╯ + +Error: Expected function body, found Error + ╭─[ 0:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected function body, found Error +────╯ + +Error: Expected top-level declaration, found Error + ╭─[ 0:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected top-level declaration, found Error +────╯ + +Error: Expected top-level declaration, found Error + ╭─[ 0:29:17 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected top-level declaration, found Error +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:29:21 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found RParen + ╭─[ 0:29:27 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + +Error: Expected top-level declaration, found Arrow + ╭─[ 0:29:29 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬ + │ ╰─── Expected top-level declaration, found Arrow +────╯ + +Error: Expected top-level declaration, found Word + ╭─[ 0:29:32 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + +Error: Expected top-level declaration, found LBrace + ╭─[ 0:30:1 ] + │ + 30 │ "# + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + +Error: Expected config block, found Word + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Hash + +Error: Expected top-level declaration, found Quote + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Colon + +Error: Expected top-level declaration, found LBrace + +Error: Expected top-level declaration, found LBrace + +Error: Expected top-level declaration, found Error + +Error: Expected top-level declaration, found Error + +Error: Expected top-level declaration, found RBrace + +Error: Expected top-level declaration, found RBrace + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Colon + +Error: Expected top-level declaration, found Error + +Error: Expected top-level declaration, found Word + +Error: Expected top-level declaration, found Error + +Error: Expected top-level declaration, found Quote + +Error: Expected top-level declaration, found Hash + +Error: Expected top-level declaration, found RBrace diff --git a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap index 5a68a82b40..5aaae98e21 100644 --- a/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/parser_strings/baml_tests__parser_strings__05_diagnostics.snap @@ -3,87 +3,476 @@ source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === - [parse] Expected Expected attribute argument, found Expected attribute argument - [parse] Expected Expected RParen, found Error, found Expected RParen, found Error - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected RParen, found Word, found Expected RParen, found Word - [parse] Expected Expected type, found Expected type - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Unexpected token in class body, found Unexpected token in class body - [parse] Expected Expected function name, found Expected function name - [parse] Expected Expected LParen, found Error, found Expected LParen, found Error - [parse] Expected Expected parameter name, found Expected parameter name - [parse] Expected Expected type annotation, found Expected type annotation - [parse] Expected Expected RParen, found Error, found Expected RParen, found Error - [parse] Expected Expected return type (->), found Expected return type (->) - [parse] Expected Expected function body, found Expected function body - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected config block, found Expected config block - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration - [parse] Expected Expected top-level declaration, found Expected top-level declaration + [parse] Error: Expected attribute argument, found Error + ╭─[ 0:4:34 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected attribute argument, found Error +───╯ + + [parse] Error: Expected RParen, found Error + ╭─[ 0:4:34 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected RParen, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:4:34 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:4:44 ] + │ + 4 │ double_in_single string @alias('She said "hello"') + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected type, found Error + ╭─[ 0:5:41 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected type, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:5:41 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:5:42 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected type, found Error + ╭─[ 0:5:48 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected type, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:5:48 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:5:49 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:5:58 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected Unexpected token in class body, found RParen + ╭─[ 0:5:59 ] + │ + 5 │ escaped_in_escaped string @alias("The \"quote\" is here") + │ ┬ + │ ╰── Expected Unexpected token in class body, found RParen +───╯ + + [parse] Error: Expected RParen, found Word + ╭─[ 0:6:47 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ───┬── + │ ╰──── Expected RParen, found Word +───╯ + + [parse] Error: Expected type, found Error + ╭─[ 0:6:53 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected type, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:6:53 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:6:54 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:6:56 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected type, found Error + ╭─[ 0:6:64 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected type, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:6:64 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:6:65 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected Unexpected token in class body, found RParen + ╭─[ 0:6:66 ] + │ + 6 │ complex_nesting string @description("It's \"really\" 'complex'") + │ ┬ + │ ╰── Expected Unexpected token in class body, found RParen +───╯ + + [parse] Error: Expected RParen, found Word + ╭─[ 0:7:31 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ─┬─ + │ ╰─── Expected RParen, found Word +───╯ + + [parse] Error: Expected type, found Error + ╭─[ 0:7:34 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected type, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:7:34 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:35 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected Unexpected token in class body, found Colon + ╭─[ 0:7:36 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Colon +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:7:38 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:39 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected type, found Error + ╭─[ 0:7:45 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected type, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 0:7:45 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 0:7:46 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected top-level declaration, found Quote + ╭─[ 0:7:48 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected top-level declaration, found Quote +───╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 0:7:49 ] + │ + 7 │ json_like string @alias("{\"key\": \"value\"}") + │ ┬ + │ ╰── Expected top-level declaration, found RParen +───╯ + + [parse] Error: Expected top-level declaration, found RBrace + ╭─[ 0:8:1 ] + │ + 8 │ } + │ ┬ + │ ╰── Expected top-level declaration, found RBrace +───╯ + + [parse] Error: Expected RParen, found Word + ╭─[ 2:7:41 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ──┬── + │ ╰──── Expected RParen, found Word +───╯ + + [parse] Error: Expected type, found Error + ╭─[ 2:7:46 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected type, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Error + ╭─[ 2:7:46 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Error +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 2:7:47 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected Unexpected token in class body, found Quote + ╭─[ 2:7:48 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found Quote +───╯ + + [parse] Error: Expected Unexpected token in class body, found RParen + ╭─[ 2:7:49 ] + │ + 7 │ with_quotes string @alias("She said \"hello\"") + │ ┬ + │ ╰── Expected Unexpected token in class body, found RParen +───╯ + + [parse] Error: Expected function name, found Error + ╭─[ 3:29:1 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected function name, found Error +────╯ + + [parse] Error: Expected parameter name, found Error + ╭─[ 3:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected parameter name, found Error +────╯ + + [parse] Error: Expected type annotation, found Error + ╭─[ 3:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected type annotation, found Error +────╯ + + [parse] Error: Expected RParen, found Error + ╭─[ 3:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected RParen, found Error +────╯ + + [parse] Error: Expected return type (->), found Error + ╭─[ 3:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected return type (->), found Error +────╯ + + [parse] Error: Expected function body, found Error + ╭─[ 3:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected function body, found Error +────╯ + + [parse] Error: Expected top-level declaration, found Error + ╭─[ 3:29:14 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected top-level declaration, found Error +────╯ + + [parse] Error: Expected top-level declaration, found Error + ╭─[ 3:29:17 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬─ + │ ╰─── Expected top-level declaration, found Error +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:29:21 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ───┬── + │ ╰──── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found RParen + ╭─[ 3:29:27 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ┬ + │ ╰── Expected top-level declaration, found RParen +────╯ + + [parse] Error: Expected top-level declaration, found Arrow + ╭─[ 3:29:29 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ─┬ + │ ╰─── Expected top-level declaration, found Arrow +────╯ + + [parse] Error: Expected top-level declaration, found Word + ╭─[ 3:29:32 ] + │ + 29 │ Return result with emojis: ✅ or ❌ + │ ────┬─── + │ ╰───── Expected top-level declaration, found Word +────╯ + + [parse] Error: Expected top-level declaration, found LBrace + ╭─[ 3:30:1 ] + │ + 30 │ "# + │ ┬ + │ ╰── Expected top-level declaration, found LBrace +────╯ + + [parse] Error: Expected config block, found Word + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Hash + + [parse] Error: Expected top-level declaration, found Quote + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Colon + + [parse] Error: Expected top-level declaration, found LBrace + + [parse] Error: Expected top-level declaration, found LBrace + + [parse] Error: Expected top-level declaration, found Error + + [parse] Error: Expected top-level declaration, found Error + + [parse] Error: Expected top-level declaration, found RBrace + + [parse] Error: Expected top-level declaration, found RBrace + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Colon + + [parse] Error: Expected top-level declaration, found Error + + [parse] Error: Expected top-level declaration, found Word + + [parse] Error: Expected top-level declaration, found Error + + [parse] Error: Expected top-level declaration, found Quote + + [parse] Error: Expected top-level declaration, found Hash + + [parse] Error: Expected top-level declaration, found RBrace diff --git a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__02_parser__main.snap b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__02_parser__main.snap index 7db67b9db8..afac2c9ee4 100644 --- a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__02_parser__main.snap +++ b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__02_parser__main.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === SYNTAX TREE === diff --git a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__05_diagnostics.snap b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__05_diagnostics.snap index 9b769e668e..555b982606 100644 --- a/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__05_diagnostics.snap +++ b/baml_language/crates/baml_tests/snapshots/simple_function/baml_tests__simple_function__05_diagnostics.snap @@ -1,5 +1,5 @@ --- -source: target/debug/build/baml_tests-cb4594c533e23a52/out/generated_tests.rs +source: target/debug/build/baml_tests-0fbde5d1c173768c/out/generated_tests.rs expression: output --- === DIAGNOSTICS === diff --git a/baml_language/crates/baml_tests/src/lib.rs b/baml_language/crates/baml_tests/src/lib.rs index 9470507ee6..9c0001c00d 100644 --- a/baml_language/crates/baml_tests/src/lib.rs +++ b/baml_language/crates/baml_tests/src/lib.rs @@ -62,9 +62,10 @@ fn format_hir_file( source_file: baml_db::SourceFile, items: &[baml_db::baml_hir::ItemId], ) -> String { - use baml_db::baml_hir::ItemId; use std::fmt::Write; + use baml_db::baml_hir::ItemId; + // Get the ItemTree once and keep it alive for all lookups let item_tree = baml_db::baml_hir::file_item_tree(db, source_file); let mut result = String::new(); From 96e56e3fbbf8e2dbd8400340315fcdef2e005558 Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Thu, 20 Nov 2025 17:22:13 +0100 Subject: [PATCH 10/14] Cache parse result --- baml_language/crates/baml_parser/src/lib.rs | 36 +++++++++++++++------ 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/baml_language/crates/baml_parser/src/lib.rs b/baml_language/crates/baml_parser/src/lib.rs index dafa8cbb32..5567dd8dc0 100644 --- a/baml_language/crates/baml_parser/src/lib.rs +++ b/baml_language/crates/baml_parser/src/lib.rs @@ -52,20 +52,38 @@ impl baml_base::Diagnostic for ParseError { } } -/// Tracked: parse file into green tree (immutable, position-independent) +/// Tracked struct that holds both parse outputs together #[salsa::tracked] -pub fn parse_green(db: &dyn salsa::Database, file: SourceFile) -> GreenNode { - let tokens = lex_file(db, file); - let (green, _errors) = parse_file(&tokens); - green +pub struct ParseResult<'db> { + #[tracked] + pub green: GreenNode, + + #[tracked] + pub errors: Vec, } -/// Tracked: get parse errors for a file +/// Tracked: parse file and return both green tree and errors. +/// +/// Note: We can't make this take Vec directly because Salsa tracked +/// functions can only take Salsa-tracked types as input. So we take `SourceFile`, +/// call `lex_file` (tracked), then call `parse_file` (not tracked) with the tokens. #[salsa::tracked] -pub fn parse_errors(db: &dyn salsa::Database, file: SourceFile) -> Vec { +pub fn parse_result(db: &dyn salsa::Database, file: SourceFile) -> ParseResult<'_> { let tokens = lex_file(db, file); - let (_green, errors) = parse_file(&tokens); - errors + let (green, errors) = parse_file(&tokens); + ParseResult::new(db, green, errors) +} + +/// Get the green tree from parsing a file +pub fn parse_green(db: &dyn salsa::Database, file: SourceFile) -> GreenNode { + let result = parse_result(db, file); + result.green(db) +} + +/// Get parse errors from parsing a file +pub fn parse_errors(db: &dyn salsa::Database, file: SourceFile) -> Vec { + let result = parse_result(db, file); + result.errors(db) } /// Helper to build a red tree from the green tree. From ac720ea60c18edd09e24ed50f55fead32d3a13db Mon Sep 17 00:00:00 2001 From: Greg Hale Date: Thu, 20 Nov 2025 11:28:06 -0800 Subject: [PATCH 11/14] slim down Pattern --- baml_language/crates/baml_hir/src/body.rs | 30 ++++++----------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/baml_language/crates/baml_hir/src/body.rs b/baml_language/crates/baml_hir/src/body.rs index b7761e208d..641f866bae 100644 --- a/baml_language/crates/baml_hir/src/body.rs +++ b/baml_language/crates/baml_hir/src/body.rs @@ -85,12 +85,6 @@ pub enum Expr { else_branch: Option, }, - /// Match expression - Match { - scrutinee: ExprId, - arms: Vec, - }, - /// Binary operation Binary { op: BinaryOp, @@ -149,25 +143,14 @@ pub enum Stmt { Missing, } -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct MatchArm { - pub pattern: PatId, - pub expr: ExprId, -} - +/// The left-hand side of a let binding, or match arm in the future. +/// +/// Today only variables can be bound, but in the future we will support +/// more complex patterns: wildcards, literals, paths, and constructors. #[derive(Debug, Clone, PartialEq, Eq)] pub enum Pattern { - /// Literal pattern: `42`, `"hello"` - Literal(Literal), - - /// Path pattern: `SomeVariant` - Path(Name), - /// Binding pattern: `x`, `user` Binding(Name), - - /// Wildcard: `_` - Wildcard, } #[derive(Debug, Clone, PartialEq, Eq)] @@ -852,7 +835,10 @@ impl LoweringContext { let name = Name::new(token.text()); self.patterns.alloc(Pattern::Binding(name)) }) - .unwrap_or_else(|| self.patterns.alloc(Pattern::Wildcard)); + .unwrap_or_else(|| { + self.patterns + .alloc(Pattern::Binding(Name::new("missing_let"))) + }); // Extract initializer expression let initializer = node From a49e34b8823bcf89d9d4b629cb67958f65183dc6 Mon Sep 17 00:00:00 2001 From: Greg Hale Date: Thu, 20 Nov 2025 11:42:21 -0800 Subject: [PATCH 12/14] fix up path.rs --- baml_language/crates/baml_hir/src/path.rs | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/baml_language/crates/baml_hir/src/path.rs b/baml_language/crates/baml_hir/src/path.rs index 25b8bc2328..d06fc002f8 100644 --- a/baml_language/crates/baml_hir/src/path.rs +++ b/baml_language/crates/baml_hir/src/path.rs @@ -1,12 +1,13 @@ //! Path representation for name resolution. //! //! Paths allow referencing items across module boundaries (future feature). -//! Today: All paths are single-segment (e.g., "User") -//! Future: Multi-segment paths (e.g., "`users::User`") +//! Today: Most paths are single-segment (e.g., "User") and refer to user-defined +//! items in the current project. There are also some paths that begin with the +//! "baml" segment, a builtin pseudomodule. use baml_base::Name; -/// A path to an item (`foo::bar::Baz`). +/// A path to an item (`foo.bar.Baz`). #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Path { /// Path segments (`["foo", "bar", "Baz"]`). @@ -17,21 +18,13 @@ pub struct Path { } /// The kind of path resolution. +/// +/// Only one variant today. Maybe in the future we support absolute paths. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum PathKind { - /// Relative path (`foo::bar`). + /// Relative path (`foo.bar`). /// Resolved relative to current scope. Plain, - - /// Absolute path (`::foo::bar`) (future feature). - /// Resolved from project root. - #[allow(dead_code)] - Absolute, - - /// Super path (`super::foo`) (future feature). - /// Resolved relative to parent module. - #[allow(dead_code)] - Super { count: u32 }, } impl Path { @@ -44,7 +37,6 @@ impl Path { } /// Create a multi-segment path (future feature). - #[allow(dead_code)] pub fn new(segments: Vec) -> Self { Path { segments, From e7ae66ab5e602dafff980ff0363c5ebf8e5acd07 Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Thu, 20 Nov 2025 22:09:50 +0100 Subject: [PATCH 13/14] Make lexer tests consistent --- baml_language/crates/baml_lexer/src/tokens.rs | 391 +++++++++--------- 1 file changed, 189 insertions(+), 202 deletions(-) diff --git a/baml_language/crates/baml_lexer/src/tokens.rs b/baml_language/crates/baml_lexer/src/tokens.rs index aa67b1e73f..28c2065fda 100644 --- a/baml_language/crates/baml_lexer/src/tokens.rs +++ b/baml_language/crates/baml_lexer/src/tokens.rs @@ -286,6 +286,22 @@ mod tests { use super::*; + fn lex(source: &str) -> Vec { + lex_lossless(source, FileId::new(0)) + } + + fn lex_token_kinds(source: &str) -> Vec { + lex(source).iter().map(|t| t.kind).collect() + } + + fn lex_no_whitespace(source: &str) -> Vec { + lex(source) + .iter() + .filter(|t| t.kind != TokenKind::Whitespace) + .map(|t| t.kind) + .collect() + } + #[test] fn test_lossless_lexing() { let source = "function test() {}"; @@ -297,18 +313,10 @@ mod tests { #[test] fn test_operators() { - let source = "-> :: += -= == != <= >= && ||"; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace("-> :: += -= == != <= >= && ||"); assert_eq!( - kinds, + tokens, vec![ TokenKind::Arrow, TokenKind::DoubleColon, @@ -328,20 +336,14 @@ mod tests { fn test_word_with_hyphens() { // Words can contain hyphens (e.g., "gpt-4o", "exponential_backoff") let source = "gpt-4o model-name"; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace(source); // Should tokenize as: WORD("gpt"), MINUS, INTEGER("4"), WORD("o"), WORD("model"), MINUS, WORD("name") // Wait, no - the regex is [a-zA-Z_][a-zA-Z0-9_-]* so hyphens inside words should work - assert_eq!(kinds, vec![TokenKind::Word, TokenKind::Word,]); + assert_eq!(tokens, vec![TokenKind::Word, TokenKind::Word]); - let words: Vec<&str> = tokens + let all_tokens = lex(source); + let words: Vec<&str> = all_tokens .iter() .filter(|t| t.kind == TokenKind::Word) .map(|t| t.text.as_str()) @@ -351,18 +353,10 @@ mod tests { #[test] fn test_arithmetic_operators() { - let source = "+ - * / % ++ -- += -= *= /= %="; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace("+ - * / % ++ -- += -= *= /= %="); assert_eq!( - kinds, + tokens, vec![ TokenKind::Plus, TokenKind::Minus, @@ -382,18 +376,10 @@ mod tests { #[test] fn test_bitwise_operators() { - let source = "& | ^ ~ && || &= |= ^="; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace("& | ^ ~ && || &= |= ^="); assert_eq!( - kinds, + tokens, vec![ TokenKind::And, TokenKind::Pipe, @@ -410,18 +396,10 @@ mod tests { #[test] fn test_shift_operators() { - let source = "<< >> <<= >>="; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace("<< >> <<= >>="); assert_eq!( - kinds, + tokens, vec![ TokenKind::LessLess, TokenKind::GreaterGreater, @@ -435,24 +413,16 @@ mod tests { fn test_operator_precedence() { // Test that longer operators are matched first let source = "<<="; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); + let all_tokens = lex(source); - assert_eq!(tokens.len(), 1); - assert_eq!(tokens[0].kind, TokenKind::LessLessEquals); + assert_eq!(all_tokens.len(), 1); + assert_eq!(all_tokens[0].kind, TokenKind::LessLessEquals); // Test >> vs >= - let source2 = ">>= >= >>"; - let tokens2 = lex_lossless(source2, file_id); - - let kinds: Vec = tokens2 - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace(">>= >= >>"); assert_eq!( - kinds, + tokens, vec![ TokenKind::GreaterGreaterEquals, TokenKind::GreaterEquals, @@ -464,18 +434,11 @@ mod tests { #[test] fn test_raw_string_basic() { let source = r##"#"Hello World"#"##; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); + let tokens = lex_no_whitespace(source); // Should lex as: Hash, Quote, Word("Hello"), Word("World"), Quote, Hash - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); - assert_eq!( - kinds, + tokens, vec![ TokenKind::Hash, TokenKind::Quote, @@ -487,54 +450,60 @@ mod tests { ); // Lossless - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] fn test_raw_string_multiple_hashes() { // With Quote tokens, quotes inside are just more tokens let source = r###"##"String with quotes inside"##"###; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace(source); // Hash, Hash, Quote, ...(words)..., Quote, Hash, Hash - assert_eq!(kinds[0], TokenKind::Hash); - assert_eq!(kinds[1], TokenKind::Hash); - assert_eq!(kinds[2], TokenKind::Quote); - // ... words in between ... - assert_eq!(kinds[kinds.len() - 3], TokenKind::Quote); - assert_eq!(kinds[kinds.len() - 2], TokenKind::Hash); - assert_eq!(kinds[kinds.len() - 1], TokenKind::Hash); + assert_eq!( + tokens, + vec![ + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Quote, + TokenKind::Word, // String + TokenKind::Word, // with + TokenKind::Word, // quotes + TokenKind::Word, // inside + TokenKind::Quote, + TokenKind::Hash, + TokenKind::Hash, + ] + ); - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] fn test_raw_string_with_jinja() { let source = r##"#"Hello {{ name }}"#"##; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); + let tokens = lex_no_whitespace(source); - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); - - // Should start with: Hash, Quote - assert_eq!(kinds[0], TokenKind::Hash); - assert_eq!(kinds[1], TokenKind::Quote); - // And end with: Quote, Hash - assert_eq!(kinds[kinds.len() - 2], TokenKind::Quote); - assert_eq!(kinds[kinds.len() - 1], TokenKind::Hash); + assert_eq!( + tokens, + vec![ + TokenKind::Hash, + TokenKind::Quote, + TokenKind::Word, // Hello + TokenKind::LBrace, // { + TokenKind::LBrace, // { + TokenKind::Word, // name + TokenKind::RBrace, // } + TokenKind::RBrace, // } + TokenKind::Quote, + TokenKind::Hash, + ] + ); - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] @@ -558,155 +527,173 @@ mod tests { #[test] fn test_raw_string_in_context() { let source = r##"prompt #"Hello {{ name }}"#"##; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace(source); - // Should start with: Word("prompt"), Hash, Quote - assert_eq!(kinds[0], TokenKind::Word); - assert_eq!(kinds[1], TokenKind::Hash); - assert_eq!(kinds[2], TokenKind::Quote); - // And end with: Quote, Hash - assert_eq!(kinds[kinds.len() - 2], TokenKind::Quote); - assert_eq!(kinds[kinds.len() - 1], TokenKind::Hash); + assert_eq!( + tokens, + vec![ + TokenKind::Word, // prompt + TokenKind::Hash, + TokenKind::Quote, + TokenKind::Word, // Hello + TokenKind::LBrace, // { + TokenKind::LBrace, // { + TokenKind::Word, // name + TokenKind::RBrace, // } + TokenKind::RBrace, // } + TokenKind::Quote, + TokenKind::Hash, + ] + ); // Lossless - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] fn test_multiple_raw_strings() { let source = r##"#"First"# #"Second"#"##; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace(source); // Should be: Hash, Quote, Word, Quote, Hash, Hash, Quote, Word, Quote, Hash - assert_eq!(kinds[0], TokenKind::Hash); - assert_eq!(kinds[1], TokenKind::Quote); - assert_eq!(kinds[2], TokenKind::Word); - assert_eq!(kinds[3], TokenKind::Quote); - assert_eq!(kinds[4], TokenKind::Hash); - assert_eq!(kinds[5], TokenKind::Hash); - assert_eq!(kinds[6], TokenKind::Quote); - assert_eq!(kinds[7], TokenKind::Word); - assert_eq!(kinds[8], TokenKind::Quote); - assert_eq!(kinds[9], TokenKind::Hash); + assert_eq!( + tokens, + vec![ + TokenKind::Hash, + TokenKind::Quote, + TokenKind::Word, // First + TokenKind::Quote, + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Quote, + TokenKind::Word, // Second + TokenKind::Quote, + TokenKind::Hash, + ] + ); // Lossless - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] fn test_five_hash_delimiter() { let source = r######"#####"Complex content here"#####"######; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens - .iter() - .filter(|t| t.kind != TokenKind::Whitespace) - .map(|t| t.kind) - .collect(); + let tokens = lex_no_whitespace(source); // Should be: 5 Hash, Quote, ...(words)..., Quote, 5 Hash - for kind in kinds.iter().take(5) { - assert_eq!(*kind, TokenKind::Hash); - } - assert_eq!(kinds[5], TokenKind::Quote); - // ... words in middle ... - assert_eq!(kinds[kinds.len() - 6], TokenKind::Quote); - for kind in kinds.iter().skip(kinds.len() - 5) { - assert_eq!(*kind, TokenKind::Hash); - } - assert_eq!(reconstruct_source(&tokens), source); + assert_eq!( + tokens, + vec![ + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Quote, + TokenKind::Word, // Complex + TokenKind::Word, // content + TokenKind::Word, // here + TokenKind::Quote, + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Hash, + TokenKind::Hash, + ] + ); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] fn test_url_in_string() { // Test that URLs with // inside strings are not treated as comments let source = r#""https://google.com""#; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); - - let kinds: Vec = tokens.iter().map(|t| t.kind).collect(); + let tokens = lex_token_kinds(source); // Should be: Quote, Word("https"), Colon, Slash, Slash, Word("google"), Dot, Word("com"), Quote // NOT: Quote, Word("https"), Colon, LineComment - assert_eq!(kinds[0], TokenKind::Quote); - assert_eq!(kinds[1], TokenKind::Word); // https - assert_eq!(kinds[2], TokenKind::Colon); - assert_eq!(kinds[3], TokenKind::Slash); // First slash - assert_eq!(kinds[4], TokenKind::Slash); // Second slash (NOT LineComment!) - assert_eq!(kinds[5], TokenKind::Word); // google - assert_eq!(kinds[6], TokenKind::Dot); - assert_eq!(kinds[7], TokenKind::Word); // com - assert_eq!(kinds[8], TokenKind::Quote); + assert_eq!( + tokens, + vec![ + TokenKind::Quote, + TokenKind::Word, // https + TokenKind::Colon, + TokenKind::Slash, // First slash + TokenKind::Slash, // Second slash (NOT LineComment!) + TokenKind::Word, // google + TokenKind::Dot, + TokenKind::Word, // com + TokenKind::Quote, + ] + ); // Verify lossless - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] fn test_line_comment() { // Test that actual line comments (outside strings) are lexed as individual tokens let source = "// This is a comment\ncode"; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); + let tokens = lex_token_kinds(source); // Should be: Slash, Slash, Whitespace, Word("This"), ..., Newline, Word("code") // The parser will recognize Slash Slash as a comment pattern - assert_eq!(tokens[0].kind, TokenKind::Slash); - assert_eq!(tokens[1].kind, TokenKind::Slash); - - // Find the newline - let newline_pos = tokens - .iter() - .position(|t| t.kind == TokenKind::Newline) - .unwrap(); - assert!(newline_pos > 2); // Should have comment content before newline - - // After newline should be the code - assert_eq!(tokens[newline_pos + 1].kind, TokenKind::Word); - assert_eq!(tokens[newline_pos + 1].text, "code"); + assert_eq!( + tokens, + vec![ + TokenKind::Slash, // / + TokenKind::Slash, // / + TokenKind::Whitespace, // + TokenKind::Word, // This + TokenKind::Whitespace, // + TokenKind::Word, // is + TokenKind::Whitespace, // + TokenKind::Word, // a + TokenKind::Whitespace, // + TokenKind::Word, // comment + TokenKind::Newline, // \n + TokenKind::Word, // code + ] + ); // Verify lossless - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } #[test] fn test_block_comment() { // Test that block comments are lexed as individual tokens let source = "/* block comment */ code"; - let file_id = FileId::new(0); - let tokens = lex_lossless(source, file_id); + let tokens = lex_token_kinds(source); // Should be: Slash, Star, ..., Star, Slash, Whitespace, Word("code") // The parser will recognize Slash Star as block comment start - assert_eq!(tokens[0].kind, TokenKind::Slash); - assert_eq!(tokens[1].kind, TokenKind::Star); - - // Find the closing */ - let mut star_slash_pos = None; - for i in 0..tokens.len() - 1 { - if tokens[i].kind == TokenKind::Star && tokens[i + 1].kind == TokenKind::Slash { - star_slash_pos = Some(i); - break; - } - } - assert!(star_slash_pos.is_some()); + assert_eq!( + tokens, + vec![ + TokenKind::Slash, // / + TokenKind::Star, // * + TokenKind::Whitespace, // + TokenKind::Word, // block + TokenKind::Whitespace, // + TokenKind::Word, // comment + TokenKind::Whitespace, // + TokenKind::Star, // * + TokenKind::Slash, // / + TokenKind::Whitespace, // + TokenKind::Word, // code + ] + ); // Verify lossless - assert_eq!(reconstruct_source(&tokens), source); + let all_tokens = lex(source); + assert_eq!(reconstruct_source(&all_tokens), source); } } From 36142d7c9230d257cc2b4e5d770366d10ae459d3 Mon Sep 17 00:00:00 2001 From: Antonio Sarosi Date: Thu, 20 Nov 2025 22:18:14 +0100 Subject: [PATCH 14/14] Verify lossless oneliner --- baml_language/crates/baml_lexer/src/tokens.rs | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/baml_language/crates/baml_lexer/src/tokens.rs b/baml_language/crates/baml_lexer/src/tokens.rs index 28c2065fda..93382b3751 100644 --- a/baml_language/crates/baml_lexer/src/tokens.rs +++ b/baml_language/crates/baml_lexer/src/tokens.rs @@ -450,8 +450,7 @@ mod tests { ); // Lossless - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -477,8 +476,7 @@ mod tests { ] ); - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -502,8 +500,7 @@ mod tests { ] ); - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -547,8 +544,7 @@ mod tests { ); // Lossless - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -574,8 +570,7 @@ mod tests { ); // Lossless - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -604,8 +599,7 @@ mod tests { TokenKind::Hash, ] ); - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -632,8 +626,7 @@ mod tests { ); // Verify lossless - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -663,8 +656,7 @@ mod tests { ); // Verify lossless - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } #[test] @@ -693,7 +685,6 @@ mod tests { ); // Verify lossless - let all_tokens = lex(source); - assert_eq!(reconstruct_source(&all_tokens), source); + assert_eq!(reconstruct_source(&lex(source)), source); } }